【wooCommerce】チェックアウト時の請求先情報項目を追加する

wooCommerceでチェックアウト時に項目を追加する方法です。

wooCommerceはフックやアクションが豊富に用意されているので、ほとんどのカスタマイズはソースを直接さわらずに変更可能です。

では、まずチェックアウト時の「請求先情報」の入力画面

ここにメルマガの受信をする可否の項目を追加したいです。

フィルターは

woocommerce_checkout_fields
を使います。
add_filter( ‘woocommerce_checkout_fields’, ‘billing_add_feild_jp’ );
function billing_add_feild_jp( $fields ) {
$fields[ ‘billing’ ][ ‘mailmaga’ ] = array(
‘label’ => ‘メルマガ’,
‘description’ => ”,
‘type’ => ‘radio’,
‘required’ => ‘true’,
‘options’ => array(
‘1’ => ‘希望する’,
‘2’ => ‘希望しない’
),
);
return$fields;
}

これで

このようにメルマガの項目を簡単に追加出来ます。

データ保存

当然ですが、このデータを保存してやらないとダメです。

add_action( ‘woocommerce_checkout_update_order_meta’, ‘save_custom_field_shop_order’ ,10,3);
function save_custom_field_shop_order( $order_id ){
global$wpdb;
if($_POST[ ‘mailmaga’ ]){update_post_meta( $order_id, ‘mailmaga’, $_POST[ ‘mailmaga’ ] );}
if($_POST[ ‘mailmaga_sale’ ]){update_post_meta( $order_id, ‘mailmaga_sale’, $_POST[ ‘mailmaga_sale’ ] );}
}

このソースで保存できます。

woocommerce_checkout_update_order_meta

でデータを保存するアクションになります。