结帐页面上的运输计算器按钮

时间:2017-04-10 15:27:53

标签: php wordpress woocommerce

我是woocommerce的新手,我对此并不了解。在一个项目中,我想从购物车页面隐藏运费计算按钮。但是想要在结帐页面上显示相同的配置。

我想要了解如何在结帐时添加送货按钮。

3 个答案:

答案 0 :(得分:0)

转到 WooCommerce->设置 - >送货 - >送货选项

并确保您已取消选中'在购物车页面上启用送货计算器'。

答案 1 :(得分:0)

所有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页面中找到名称为=“ 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');
            });

答案 2 :(得分:0)

您可以在单击calc_shipping按钮之后触发一个事件,但是您需要等待本机calc_shipping方法结束。我用jQuery(document).ajaxComplete等待执行:

jQuery('[name="calc_shipping"]').click(function () {
jQuery(document).ajaxComplete(function () {
    your_pretty_code;
});