【问题标题】:WooCommerce - Show Shipping on Checkout PageWooCommerce - 在结帐页面上显示运费
【发布时间】:2020-05-11 20:51:05
【问题描述】:

我想在 WooCommerce 订单流程中为客户提供在家中提供服务的可能性。现在我已经创建了一个带有邮政编码的送货方式,但我需要在结账时选择送货方式(最好是在输入地址之后)。

我在结账时看到了许多可以实现这一点的屏幕截图(见图),并找到了一些如何在结账时实现运费的说明(例如:https://websitedepot.com/moving-shipping-rates-woocommerce-checkout/)。但是,没有任何效果。

也许有人可以帮助我实现这一点。 非常感谢!

【问题讨论】:

    标签: php wordpress woocommerce checkout shipping


    【解决方案1】:

    需要通过将该文件复制到您的子主题中来覆盖所有 woocommerce 文件。

    此外,在 woocommerce 后端,必须选中该选项,该选项告诉在购物车页面上显示运费计算器(因为这将显示计算器)

    在第一个 tr 之前将以下代码添加到 woocommerce/cart/cart-shipping.php 文件中(您将在文件中找到)

    if(is_checkout() && !$show_shipping_calculator && 'yes' === get_option( 'woocommerce_enable_shipping_calc' )  ) {
            $show_shipping_calculator = true;
    }
    

    将以下代码添加到您的子主题的 fuctions.php 中

    add_action( 'wp_enqueue_scripts', 'test_test' );
            function test_test() {
                if( is_checkout() ) {
                    if( wp_script_is( 'wc-cart', 'registered' ) && !wp_script_is( 'wc-cart', 'enqueued' ) ) {
                    wp_enqueue_script( 'wc-cart' );
                }
            }
        }
    

    现在我们需要在运费计算器的更新总计按钮中添加 id 标签,为此在 woocommerce/cart/shipping-calculator.php 页面中找到具有 name="calc_shipping" 的按钮并在该按钮中添加 id 标签 === => id="calc_shipping"

    注意 ==> 这是由我们在 jQuery 中绑定按钮单击事件完成的,您可以使用任何其他替代方式(如果您愿意)

    现在是最后一步,

    在您的子主题的 js 文件中添加以下 jquery 代码

     jQuery(document).on('click','#calc_shipping',function(e){
    
                        e.preventDefault();
    
                        var shipping_country_val    =    jQuery("#calc_shipping_country").val();
                        var shipping_state_val      =    jQuery("#calc_shipping_state").val();
                        var shipping_city_name      =    jQuery("#calc_shipping_city").val();
                        var shipping_postcode       =    jQuery("#calc_shipping_postcode").val();
    
                        jQuery("#billing_country").val(shipping_country_val);
                        jQuery("#billing_state").val(shipping_state_val);
                        jQuery('#billing_city').val(shipping_city_name);
                        jQuery('#billing_postcode').val(shipping_postcode);
                        jQuery("#shipping_country").val(shipping_country_val);
                        jQuery("#shipping_state").val(shipping_state_val);
                        jQuery('#shipping_city').val(shipping_city_name);
                        jQuery('#shipping_postcode').val(shipping_postcode);
    
                        $('#billing_country , #shipping_country').trigger('change');
                        $('#billing_state, #shipping_state').trigger('change');
                });
    

    【讨论】:

    • 来源:stackoverflow.com/questions/43327231/… |我已经尝试过了,但它不起作用。
    • 请检查jquery冲突,并根据最新主题或php版本正确添加功能
    • 任何内容都已正确添加,但唯一看到的是购物车和结帐中的这段代码:if(is_checkout() && !$show_shipping_calculator && 'yes' === get_option( 'woocommerce_enable_shipping_calc' ) ) { $show_shipping_calculator = true; } 我只看到代码,但它似乎没有任何功能 - 我不知道为什么.. .
    • 那么一定是现场环境检查。
    猜你喜欢
    • 2018-08-28
    • 2016-06-15
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    相关资源
    最近更新 更多