在Woocommerce中基于购物车重量添加自定义结帐字段

时间:2019-05-30 07:09:58

标签: php wordpress woocommerce cart checkout

在结帐页面上,如果购物车中的物品重量超过1000kg,我想添加一个自定义字段。

有没有一种方法来添加if语句(到form-checkout.php?)来获得购物车的重量,然后我可以在选择字段中添加?

1 个答案:

答案 0 :(得分:1)

也先阅读the official related documentation to customize checkout fieldsthis documentation

下面是一个示例,该示例将在结帐页面中的购物车重量超过1000 Kg(1吨)时添加自定义计费选择字段:

add_filter( 'woocommerce_checkout_fields' , 'customizing_checkout_fields', 10, 1 );
function customizing_checkout_fields( $fields ) {

    if( WC()->cart->get_cart_contents_weight() > 1000 ) {

        // Custom Select field
        $fields['billing']['billing_custom'] = array(
            'type'     => 'select',
            'label'    => __("Cart weight over 1 Ton", "woocommerce"),
            'class'    => array('form-row-wide'),
            'options'  => array(
                ''         => __("Choose an option please…", "woocommerce"),
                'option-1' => __("Option 1", "woocommerce"),
                'option-2' => __("Option 1", "woocommerce"),
                'option-3' => __("Option 1", "woocommerce"),
            ),
            'priority' => '120',
            'required' => true,
        );
    }

    return $fields;
}

代码进入活动子主题(或活动主题)的functions.php文件中。经过测试和工作。