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
でデータを保存するアクションになります。