トップページ > ブログ > WooCommerce > WooCommerceの郵便番号入力をハイフン必須にする

WooCommerceの郵便番号入力をハイフン必須にする

WooCommerceの請求先・送付先住所の郵便番号は、ハイフンあり、なしどちらにも対応していますが、バラバラになってしまうと管理が面倒になるので、ハイフンありに統一する方法です。

Contents

実際のコード

参考:Customizing checkout fields using actions and filters

// 郵便番号フィールドのバリデーション
add_action('woocommerce_checkout_process', function() {
  // 請求先の郵便番号フィールド
  if($_POST['billing_postcode']) { // 請求先の郵便番号フィールド
    if(strpos($_POST['billing_postcode'], '-') === false){
      wc_add_notice(__('請求先欄の郵便番号に半角ハイフンを含めてください'), 'error');
    }
    elseif(!preg_match("/^[0-9]{3}-[0-9]{4}$/", $_POST['billing_postcode'])) {
      wc_add_notice(__('請求先欄の郵便番号は「123-4567」の形式で記入してください。'), 'error');
    }
  }

  // 送付先の郵便番号フィールド
  if($_POST['ship_to_different_address'] && $_POST['shipping_postcode']) {
    if(strpos($_POST['shipping_postcode'], '-') === false){
      wc_add_notice(__('配送先欄の郵便番号に半角ハイフンを含めてください'), 'error');
    }
    elseif(!preg_match("/^[0-9]{3}-[0-9]{4}$/", $_POST['shipping_postcode'])) {
      wc_add_notice(__('配送先欄の郵便番号は「123-4567」の形式で記入してください。'), 'error');
    }
  }
});

まとめ

woocommerce_checkout_processのアクションでバリデーションを追加しています。

$_POSTの内容を見て他のフィールドに流用したりもできますので、ショップに合わせたカスタママイズが可能です。