woocommerce - 如果未选中复选框,如何发布数据
问题描述
我在 woocommerce 的结帐页面中放置了一个复选框。如果这是商业订单,客户将检查它并输入税号。
如果选中,我可以使用以下代码在数据库中获取“1”值。
但如果未单击复选框,我也想看到“0”。
我该如何管理它?
add_filter('woocommerce_checkout_fields', 'commercial_order_checkout_field');
function commercial_order_checkout_field($fields)
{
$fields['billing']['commercial_order'] = array(
'type' => 'checkbox',
'priority' => 8,
'label' => __('Kurumsal Sipariş', 'woocommerce'),
'class' => array('form-row-wide'),
'clear' => true
);
$fields['billing']['tax_number'] = array(
'label' => __('Vergi Dairesi', 'woocommerce'),
'placeholder' => _x('Vergi Dairesi', 'placeholder', 'woocommerce'),
'class' => array('form-row form-row-first'),
'required' => true,
'priority' => 31,
'clear' => true
);
return $fields;
}
// Save the custom checkout field in the order meta, when checkbox has been checked
add_action( 'woocommerce_checkout_update_order_meta', 'custom_checkout_field_update_order_meta', 10, 1 );
function custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['my_field_name'] ) )
update_post_meta( $order_id, 'commercial_order', $_POST['commercial_order'] );
}
解决方案
我解决它如下。
add_action( 'woocommerce_checkout_update_order_meta', custom_checkout_field_update_order_meta', 10, 1 );
function custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['kurumsal_siparis'] ) ) {
$faturatipi = "F";
} else {
$faturatipi = "A";
}
update_post_meta( $order_id, 'mythra_fatura_tipi', $faturatipi );
}
推荐阅读
- ruby-on-rails - 在 Rails 中为每个 GET 请求附加一个参数
- javascript - Javascript - 编写 js 插件时如何构建最小文件
- c++ - C++ 程序在迭代中变慢
- api - 如何根据窗口标题栏结束进程?
- python - pyGithub最大使用API调用率
- python - 使用 multiprocess.Process 创建进程以并行操作多个生成器,而不首先列出列表
- javascript - JS和正则表达式用于替换double = mark内的所有内容
- regex - 用于删除“|”的 Google Apps 脚本正则表达式 单引号,管道,单引号 - 导致超时
- javascript - Laravel Mix / Webpack:当我调用“npm run prod”时,它不会缩小 .scripts 但会缩小 .js
- c++11 - 使用接受 lambda 的模板函数重载