0
그래서 두 번째 사용자 지정 체크 아웃 필드를 내 저장소에 추가해야합니다.여러 개의 woocommerce 사용자 지정 주문 체크 아웃 필드
첫 번째 사용자 정의 필드는 라디오 버튼이며 템플릿 필드에 바로 추가됩니다. 다른 하나는 동일한 라디오 버튼이지만 ID와 이름이 다릅니다.
배송 부분은 정상적으로 작동하지만 그 부분은 입니다. 개인 라벨은 저장되지 않으며 주문이 완료된 후 관리 영역에 표시되지 않습니다.
내가 이미 가지고있는 것, 내가 뭘 잘못하고 있니?
/**
* Update the user meta with field value
**/
add_action('woocommerce_checkout_update_user_meta', 'my_custom_checkout_field_update_user_meta');
function my_custom_checkout_field_update_user_meta($user_id) {
if ($user_id && $_POST['shippinng']) update_user_meta($user_id, 'shippinng', esc_attr($_POST['shippinng']));
if ($user_id && $_POST['private']) update_user_meta($user_id, 'private', esc_attr($_POST['private']));
}
/**
* Update the order meta with field value
**/
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta');
function my_custom_checkout_field_update_order_meta($order_id) {
if ($_POST['shippinng']) update_post_meta($order_id, 'Transport', esc_attr($_POST['shippinng']));
if ($_POST['private']) update_post_meta($order_id, 'Private label', esc_attr($_POST['private']));
}
/**
* Display field value on the order edit page
*/
add_action('woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1);
function my_custom_checkout_field_display_admin_order_meta($order){
echo '<p><strong>'.__('Transport').':</strong> ' . get_post_meta($order->id, 'Transport', true) . '</p>';
echo '<p><strong>'.__('Private label').':</strong> ' . get_post_meta($order->id, 'Private label', true) . '</p>';
}
/**
* Add the field to order emails
**/
add_filter('woocommerce_email_order_meta_keys', 'my_custom_checkout_field_order_meta_keys');
function my_custom_checkout_field_order_meta_keys($keys) {
$keys[] = 'Transport';
$keys[] = 'Private label';
return $keys;
}