我正在为Woocommerce构建一个自定义的送货方式,我完全不知道的是如何将自定义值传递给calculate_shipping()函数,无论是在Cart页面还是Checkout页面上使用它.
我需要传递一些影响报价的用户定义变量 - 即"住宅地址","是贸易展"等.
calculate_shipping接收包含"目标"数组的$ package数组,但这只包括标准的add1,add2,city,state,zip,country info.我已经在结算和发货的结帐页面中添加了自定义字段,但我仍然无法弄清楚如何使calculate_shipping函数可以访问这些值.
我添加了一个自定义字段,如下所示:
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields( $fields ) {
$fields['shipping']['is_residential'] = array(
'label' => __('Residential Address?', 'woocommerce'),
'type' => 'checkbox',
'required' => false,
'class' => array('form-row-wide'),
'clear' => true
);
return $fields;
}
Run Code Online (Sandbox Code Playgroud)
我看到此字段显示在结帐表单的"运输"部分.但是,我没有看到我可以在任何地方访问它.即使print_r($_POST)在我知道表单已更新并重新发布之后,即使在结帐页面上执行操作也不会将此字段显示为发布数据的一部分.
但最重要的是,我需要将提交字段的内容添加到$ package对象中,Woocommerce将其传递给送货方法的calculate_shipping()函数.
我真的不确定从哪里开始.