因此,我有一个使用woocommerce的电子商务,并且我使用定制运输来收取跟踪运输费。
而且我已经添加了新的输入数据(选择)。就像您在下面的图片上看到的那样:
// Hook in
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['billing']['billing_city'] = array(
'type' => 'select',
'label' => __('Kota / Kabupaten', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide', 'address-field'),
'clear' => true,
'options' => array(
'' => 'Pilih Kota / Kabupaten'
)
);
$fields['shipping']['shipping_city'] = array(
'type' => 'select',
'label' => __('Kota / Kabupaten', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide', 'address-field'),
'clear' => true,
'options' => array(
'' => 'Pilih Kota / Kabupaten'
)
);
$fields['billing']['billing_subdistrict'] = array(
'type' => 'select',
'label' => __('Kecamatan', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide', 'address-field'),
'clear' => true,
'options' => array(
'' => 'Pilih Kecamatan'
)
);
$fields['shipping']['shipping_subdistrict'] = array(
'type' => 'select',
'label' => __('Kecamatan', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide', 'address-field'),
'clear' => true,
'options' => array(
'' => 'Pilih Kecamatan'
)
);
return $fields;
}
Woocommerce的默认数据具有地址_1,地址_2,国家/地区,州/城市,但我还需要一个称为分区的数据。我不需要保存该数据(街道)。但是我需要使用该值作为跟踪运费的参数。
我已经创建了新的class-custom-shipping-delivery.php。
并且我已经确保该功能正常运行,因为我已经尝试手动设置$ subdistrict数据。
//custom-shipping.php
$province = $package['destination']['state'];
$city = $package['destination']['city'];
$subdistrict= 'something';
//How to get the data from custom field (ajax)
//because I need to see the shipping fee result before Checkout (and update it to add rate)
$destination_code = $this->getDestinationCode($province,$city,$subdistrict);
$ongkir = $this->cek_ongkir($origin,$destination_code,$weight);
//print_r();
// send the final rate to the user.
$this->add_rate(array(
'id' => $this->id,
'label' => $this->title,
'cost' => $ongkir
));
概括:
如何从“分区输入类型”选择中获取值(在结帐页面上)?
抱歉,我只是从另一个人的工作进行编辑,所以我根本不理解该代码。但是我认为他们忘了获得该值(value),因为他们只是对其进行硬编码,而我是wordpress上的新手,所以我不知道如何在结帐表单上传递数据。
最佳答案
搜索答案一段时间后,我得到了答案。
因此,对于摘要:
在答案上方,使用 session 从运输自定义字段(ajax)获取数据。
因此,当AJAX运行时。我发送“分区”字段的值以起作用并将其保存到 session 。
function ajax_process($subdistrict){
//some code
session_start();
$_SESSION['subdistrict'] = $subdistrict;
}
然后从其他功能获取 session 数据,我运行以下代码:
@session_start();
$subdistrict = $_SESSION['subdistrict'];
关于php - Wordpress Woocommerce从定制运输领域(AJAX)获得值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40353727/