質問: woocommerce請求先フィールドのようにカスタムフィールドセットを追加する プロファイルフィールドとしてカスタムフィールドセットを追加する必要があるeコマース機能に取り組んでいます。マイチェックアウトと申し込みフォームに必要なフィールドは以下のとおりです。profile_first_name profile_last_name profile_company profile_address_1 profile_address_2 profile_city profile_postcode profile_country profile_state profile_email profile_phone この問題について私のwordpressテーマに上記のすべてのフィールドを追加設定する方法、およびチェックアウトフォームに表示するために使用するアクションまたはフィルタの設定方法を教えてください前もって感謝しますニヒル
回答: 非常に古いですが、これは検索時にまだ表示されるので、私は自分の記事 woocommerce checkout fieldsのカスタマイズ を追加します。// add a new checkout field function kia_filter_checkout_fields($fields){ $fields['extra_fields'] = array( 'some_field' => array( 'type' => 'text', 'required' => true, 'label' => __( 'some field' ) ) ); return $fields; } add_filter( 'woocommerce_checkout_fields', 'kia_filter_checkout_fields' ); // display the extra field on the checkout form function kia_extra_checkout_fields(){ $checkout = wc()->checkout(); ?> <div class="extra-fields"> <h3><?php _e( 'additional fields' ); ?></h3> <?php foreach ( $checkout->checkout_fields['extra_fields'] as $key => $field ) : ?> <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?> <?php endforeach; ?> </div> <?php } add_action( 'woocommerce_checkout_after_customer_details' ,'kia_extra_checkout_fields' ); // save the extra field when checkout is processed function kia_save_extra_checkout_fields( $order_id, $posted ){ if( isset( $posted['some_field'] ) ) { update_post_meta( $order_id, '_some_field', sanitize_text_field( $posted['some_field'] ) ); } } add_action( 'woocommerce_checkout_update_order_meta', 'kia_save_extra_checkout_fields', 10, 2 ); // display the extra data in the order admin panel function kia_display_order_data_in_admin( $order ){ ?> <div class="order_data_column"> <h4><?php _e( 'extra details', 'woocommerce' ); ?></h4> <?php echo '<p><strong>' . __( 'some field' ) . ':</strong>' . get_post_meta( $order->id, '_some_field', true ) . '</p>'; ?> </div> <?php } add_action( 'woocommerce_admin_order_data_after_order_details', 'kia_display_order_data_in_admin' );