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
Analyzegear

