我正在通过
向结帐页面添加自定义特殊字段add_filter('woocommerce_checkout_fields', custom_woocommerce_checkout_fields');
function custom_woocommerce_checkout_fields(){
... //other code
$fields = array("field_1", ..., "field_n"); //pseudocode
foreach ($fields as $key => $field) {
$class = $i % 2 == 0 ? array('form-row-first') : array('form-row-last');
woocommerce_form_field($key, array(
'type' => 'text',
'class' => $class,
'label' => $labels[$i],
'placeholder' => __('placeholder cm', 'woothemes'),
'validate' => false,
'required' => true,
'custom_attributes' => array('disabled' => true)
), $field);
$i++;
}
}
它完美无缺。我的目标是,一旦他结束订单是否已经注册,就将这些信息保存到用户元。
要实现这一点,我正在使用
add_action('woocommerce_checkout_update_user_meta','checkout_update_user_fields');
function checkout_update_user_fields($user_id){
if($user_id){
foreach ($fields as $field) { //the fields are the same as before
if (!empty($_POST[$field])) {
update_user_meta($user_id, $field, sanitize_text_field($_POST[$field]));
}
}
}
}
问题是$_POST
变量不包含我在结帐表单中插入的自定义字段。
为什么会这样?我怎样才能做到这一点?
答案 0 :(得分:0)
我觉得自己是世界上最愚蠢的人; <{1}} disabled
未发布。
希望这会节省时间给某人