Welcart 会員登録ページでフリガナの必須入力とカタカナ入力のチェックをする方法

Welcartの会員情報登録フォームにフリガナの項目がありますが、標準では必須項目になっておらず、またカタカナの入力チェックも入っていないため厳密に会員データの管理を行うには必須入力とカタナカのチェックを追加する必要があります。

以下、会員登録・編集ページ/購入手続きページ/別の配送先設定ページでフリガナの必須入力&カタナカのチェックをフィルターフックを使い実現する方法を書いて行きます。

会員登録・編集ページのフリガナ入力チェック(未入力とカタカナ)

/**
 * 会員登録・編集ページのフリガナ入力チェック(未入力とカタカナ)
 */
function ag_usces_filter_member_check($mes)
{
    $name3 = $_POST["member"]["name3"];
    $name4 = $_POST["member"]["name4"];
    
    //未入力チェック
    if (  WCUtils::is_blank($name3) && WCUtils::is_blank($name4) ){
        $mes .= "フリガナを入力して下さい。<br />";
    }
    //カタカナ入力チェック
    if( !preg_match("/^[ァ-ヾ]+$/u", $name3) || !preg_match("/^[ァ-ヾ]+$/u", $name4) ){
        $mes .= "フリガナはカタカナで入力して下さい。<br />";
    }
    
    return $mes;
}
add_filter('usces_filter_member_check', 'ag_usces_filter_member_check', 10);

購入手続きページのフリガナ入力チェック(未入力とカタカナ)

/**
 * 購入手続きページのフリガナ入力チェック(未入力とカタカナ)
 */
function ag_usces_filter_customer_check($mes)
{
    $name3 = $_POST["customer"]["name3"];
    $name4 = $_POST["customer"]["name4"];
    
    //未入力チェック
    if (  WCUtils::is_blank($name3) && WCUtils::is_blank($name4) ){
        $mes .= "フリガナを入力して下さい。<br />";
    }
    //カタカナ入力チェック
    if( !preg_match("/^[ァ-ヾ]+$/u", $name3) || !preg_match("/^[ァ-ヾ]+$/u", $name4) ){
        $mes .= "フリガナはカタカナで入力して下さい。<br />";
    }
    
    return $mes;
}
add_filter('usces_filter_customer_check', 'ag_usces_filter_customer_check', 10);
add_filter('usces_filter_member_check_fromcart', 'ag_usces_filter_customer_check', 10);

別の配送先情報を指定する場合のフリガナ入力チェック(未入力とカタカナ)

/**
 * 別の配送先情報を指定する場合のフリガナ入力チェック(未入力とカタカナ)
 */
function ag_usces_filter_delivery_check($mes)
{
    $name3 = $_POST["delivery"]["name3"];
    $name4 = $_POST["delivery"]["name4"];
    
    if ( isset($_POST['delivery']['delivery_flag']) && $_POST['delivery']['delivery_flag'] == 1 ) {

        //未入力チェック
        if (  WCUtils::is_blank($name3) && WCUtils::is_blank($name4) ){
            $mes .= "フリガナを入力して下さい。<br />";
        }
        //カタカナ入力チェック
        if( !preg_match("/^[ァ-ヾ]+$/u", $name3) || !preg_match("/^[ァ-ヾ]+$/u", $name4) ){
            $mes .= "フリガナはカタカナで入力して下さい。<br />";
        }        
        
    }
    
    return $mes;
}
add_filter('usces_filter_delivery_check', 'ag_usces_filter_delivery_check', 10);

動作環境情報

エックスサーバー(x10)
PHP 7.3.16
MySQL 5.7
WordPress 5.4.2
Welcart e-Commerce 1.9.31

関連記事

コメント

  1. 安野 より:

    初めまして。
    Welcart初心者です。

    Welcartの会員情報登録フォームのフリガナを必須にしたく、このブログを見つけました。

    「会員登録・編集ページのフリガナ入力チェック(未入力とカタカナ)」をどこに書けば、フリガナが必須になるのか、ご教授いただきたく、コメントさせていただきました。

    教えていただけると幸いです。

    よろしくお願いいたします。

    • 深尾 拓生 / FUKAO Takuo より:

      当社ブログをご覧いただき有難うございます。
      カスタマイズ内容につきましては functions.php 等に
      追記いただければ機能するようになるかと存じます。
      お時間あるときに御確認お願い致します。

      • 安野 より:

        早速、ご回答いただきありがとうございます。

        functions.phpに追記したところ、無事機能いたしました!

        大変助かりました。ありがとうございます。

        あと、もし分かれば教えていただきたいのですが、必須項目に*印が付くようになっているのですが、フリガナにも*をつけるようなコードはご存知でしょうか?

        よろしくお願いいたします。

        • 深尾 拓生 / FUKAO Takuo より:

          以下の記事を追加いたしました。
           ↓↓↓
          「Welcart 会員登録ページのフリガナを必須にする際にアスタリスクを追加する方法」
          https://analyzegear.co.jp/blog/1268

          宜しければお時間あるときに御確認お願い致します。

          • 安野 より:

            記事を追加していただき、ありがとうございます。

            思っていたとおりの動作になりました!!

            ありがとうございました。

            • 深尾 拓生 / FUKAO Takuo より:

              問題なかったようで良かったです!
              またWelcartやWordPress関連などで何かありましたらコメント頂けますと幸いです。

  2. 山下 より:

    はじめまして、こんにちは。
    Welcartのフリガナの必須入力対応をしたいので、こちらのサイトを参考にさせていただきました。
    functions.phpに追記したところ、必須チェックが動いていないように思えます。。
    Welcartのバージョンが上がって、対応するフックも変わりましたでしょうか・・?
    何か分かりましたら、教えていただけると嬉しいです。
    よろしくお願いいたします。m(__)m

タイトルとURLをコピーしました