我在WooCommerce结账时添加自定义字段时遇到问题,我正在使用以下代码:
add_filter(\'woocommerce_checkout_fields\',\'custom_override_checkout_fields\');
function custom_override_checkout_fields($fields) {
$fields[\'billing\'][\'billing_colonia\'] = array(
\'label\' => __(\'Colonia\', \'woocommerce\'),
\'placeholder\' => _x(\'\', \'placeholder\', \'woocommerce\'),
\'required\' => true,
\'class\' => array(\'form-row-wide\'),
\'clear\' => true
);
$fields[\'shipping\'][\'shipping_colonia\'] = array(
\'label\' => __(\'Colonia\', \'woocommerce\'),
\'placeholder\' => _x(\'\', \'placeholder\', \'woocommerce\'),
\'required\' => true,
\'class\' => array(\'form-row-wide\'),
\'clear\' => true
);
return $fields;
}
它确实在结帐表单上显示了该字段,但我填写了该字段并完成了一个订单,关于此新字段的任何内容都不会保存在/wp admin/edit的任何订单上。php?post\\u类型=车间订单
我应该做些什么来保存这些信息吗?在此处添加自定义字段的正确方法是什么?
最合适的回答,由SO网友:Ivan Shatsky 整理而成
据我所知,您需要通过以下方式手动保存自定义字段值woocommerce_checkout_update_order_meta
钩尝试
add_action( \'woocommerce_checkout_update_order_meta\', \'custom_checkout_fields_update_order_meta\' );
function custom_checkout_fields_update_order_meta( $order_id ) {
update_post_meta( $order_id, \'billing_colonia\', sanitize_text_field( $_POST[\'billing_colonia\'] ) );
update_post_meta( $order_id, \'shipping_colonia\', sanitize_text_field( $_POST[\'shipping_colonia\'] ) );
}