由于以下原因,我以前的代码出现了许多错误:
使用自定义插件更改价格试图将浮点与整数进行比较没有使用正确的方法如果有人觉得有用,这里有一个有效的版本:
请注意,var\\u转储用于调试和获取一些值,以防您不知道这些值。
/* Pedir 200 si el usuario es de fuera de España en los wallpapers */
add_action( \'woocommerce_check_cart_items\', \'precio_minimo_en_wallpapers\', 10, 0 );
function precio_minimo_en_wallpapers() {
// Funionar solo en la página de carrito o de finalizar compra
if( is_cart() || is_checkout() ) {
global $woocommerce;
// Precio Minimo para realizar envios a Europa y USA
$minimo_pedido_wallpaper = 200;
// Obtener los productos
$productos = $woocommerce->cart->get_cart();
// Obtener metodos de envio seleccionados en la sesión
$method = WC()->session->get( \'chosen_shipping_methods\' );
// Filtrar productos con clase de envio wallpaper y comenzar a sumar el precio
$precio = 0.00;
foreach ( $productos as $producto ) {
$shipping_class = $producto[\'data\']->get_shipping_class();
if ( $shipping_class == \'wallpapers\' ) {
$precio += $producto[\'line_total\'];
}
}
$precio_final = intval($precio);
if ( $precio_final < $minimo_pedido_wallpaper && \'flat_rate:8\' == $method[0] && $shipping_class == \'wallpapers\' || $precio_final < $minimo_pedido_wallpaper && \'flat_rate:9\' == $method[0] && $shipping_class == \'wallpapers\' ) {
wc_add_notice( \'<strong>Se requiere un pedido de mínimo 200 euros en Wallpapers para envíos Europeos o Internacionales.</strong>\'/* . + var_dump($shipping_class) */, \'error\' );
}
}
}