如果用户购买的给定产品少于200欧元,则会出现错误消息

时间:2017-05-05 作者:Kevin Mamaqi

我的产品属于“墙纸”类别,具有运输类墙纸,当用户尝试购买低于200欧元的此类产品时,我会向他们显示一条通知。

这是我的代码,但它没有按预期工作:

/* Pedir 200 si el usuario es de fuera de España en los wallpapers */
add_action( \'woocommerce_check_cart_items\', \'minimo_pedido_en_wallpaper\' );
function minimo_pedido_en_wallpaper() {
    // Funionar solo en la página de carrito o de finalizar compra
    if( is_cart() || is_checkout() ) {
        global $woocommerce;

        // Precio Minimo Europa y USA
        $minimo_pedido_wallpaper = 200;

        // Obtener los productos
        $productos = $woocommerce->cart->get_cart();

        // Filtrar productos con clase de envio wallpaper y comenzar a sumar el precio
        $precio = 0;
        foreach ($productos as $producto) {
            if ( $producto[\'data\']->get_shipping_class() == \'wallpapers\' ) {
                $precio + $producto[\'data\']->price;
            }
        }
        return $precio;


        if ( $precio < $minimo_pedido_wallpaper && WC_Shipping_Zones::get_zone( 0 ) || WC_Shipping_Zones::get_zone( 5 )) {
                wc_add_notice( sprintf( \'<strong>Se requiere un pedido de mínimo 200 euros en Wallpapers para envíos Europeos o Internacionales.</strong>\'
                .\'<br />Current cart\\\'s total: %s %s\',
                    $minimum_cart_total,
                get_option( \'woocommerce_currency\'),
                    $total,
                get_option( \'woocommerce_currency\') ), \'error\' );
            }

    }
}

1 个回复
最合适的回答,由SO网友:Kevin Mamaqi 整理而成

由于以下原因,我以前的代码出现了许多错误:

使用自定义插件更改价格

请注意,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\' );
        }
    }
}

相关推荐