チェックアウトページ(住所等の情報と支払方法のページ)に質問の項目を追加する方法です。今回は、「インボイス対応の請求書」を希望するか否かのチェックボックスを付けます。メールにも、受注リストにも情報が記載される様になっています。
INDEX
チェックボックスの仕様
- 質問は「インボイス対応」とする
- 必要な方だけチェックを入れてもらうタイプ
- 必要な場合(チェックあり)は1とする
- 不要な場合は何も表示しない
- メールにも受注情報にもチェックを入れた時だけ記載される
コードを書く
子テーマのfunction.phpに追記する。
function invoice_field($checkout){
woocommerce_form_field( 'custom_checkbox', array(
'type' => 'checkbox',
'label' => __('インボイス対応'),
'required' => false,
), $checkout->get_value( 'custom_checkbox' ));
}
add_action( 'woocommerce_before_order_notes', 'invoice_field' );
function invoice_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['custom_checkbox'] ) ) {
update_post_meta( $order_id, '_custom_checkbox', sanitize_text_field( $_POST['custom_checkbox'] ) );
}
}
add_action( 'woocommerce_checkout_update_order_meta', 'invoice_field_update_order_meta' );
function display_order_meta( $order ){
$invoice_req = get_post_meta( $order->get_id(), '_custom_checkbox', true);
echo 'インボイス対応 : ';
// $invoice_req の値が1の場合、"必要" を表示
if ($invoice_req == 1) {
echo '必要';
} else {
echo '不要';
}
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_order_meta');
// order-receivedメッセージを表示
function display_order_received_meta( $order_id ) {
$invoice_req = get_post_meta( $order_id, '_custom_checkbox', true);
if ($invoice_req == 1) {
echo '<p>インボイス対応: 必要</p>';
} else {
echo '<p>インボイス対応: 不要</p>';
}
}
add_action( 'woocommerce_thankyou', 'display_order_received_meta', 10, 1 );
// メールの注文詳細情報に追加
function add_custom_message_to_order_email( $order, $sent_to_admin, $plain_text, $email ) {
$invoice_req = get_post_meta( $order->get_id(), '_custom_checkbox', true);
if ($invoice_req == 1) {
$custom_message = "インボイス対応: 賜りました。\n"; // 改行を追加
echo $custom_message;
}
}
add_action( 'woocommerce_email_order_details', 'add_custom_message_to_order_email', 10, 4 );
インボイス制度対応の請求書プラグイン
もし、✓ボックスを付けずにお客様全員にインボイス制度対応の請求書を送付するなら、「PDF Invoice Japan for WooCommerce」がお勧めです。完璧!
PDF Invoice Japan for WooCommerce
WooCommerce で注文を受けると、日本向けの請求書(PDF)が作成され、メールで送信されます。
コメント ※ハンドルネームでお願いします