必須のアスタリスクを外す
参考記事を見て試しに「usc-e-shop/functions/function.php」を覗いてみたところ、該当のコードを発見。
function usces_get_essential_mark( $fielde, $data = NULL ) {
global $usces_essential_mark;
do_action( 'usces_action_essential_mark', $data, $fielde );
return $usces_essential_mark[ $fielde ];
}
プラグイン元は触らずにフックを作成する。
function custom_usces_get_essential_mark( $fielde, $data ) {
global $usces_essential_mark;
$usces_essential_mark['tel'] = '';
}
add_action( 'usces_action_essential_mark', 'custom_usces_get_essential_mark', 10,2 );
フォームのエラーメッセージを消す
フリガナを入力する場所は、会員、お客様、別配送先の3か所あります。それぞれにフックが有ります。
会員 ’usces_filter_member_check’ と ’usces_filter_member_check_fromcart’
お客様 ’usces_filter_customer_check’
別配送先 ’usces_filter_delivery_check’usceshop.class.php を見ると、どの様にメッセージを追加したらよいかわかるかと思います。
フリガナを必須にする – Welcart フォーラム
usces_filter_customer_checkを設定する。
function custom_usces_filter_customer_check( $mes ) {
global $usces;
if ( WCUtils::is_blank($_POST["customer"]["tel"]) ){
$replace = '/' . __('enter phone numbers', 'usces') . '<br \/>' . '/';
$mes = preg_replace($replace, '', $mes);
}
return $mes;
}
add_filter( 'usces_filter_customer_check', 'custom_usces_filter_customer_check', 10 );
$replaceへの指定は、「usc-e-shop/functions/function.php」を参考にするといいかも。
ついでに言うと最初に「$mes = ”;」なんてしたら全エラー無視して次の発送・支払い方法へと行く。やめなさい。
フォームの入力欄を消す
usces_filter_apply_addressformを使って、正規表現で置換する。
function custom_usces_filter_apply_addressform( $addressform_confirm, $type, $data ) {
if( $type === 'customer' ) {
$replace = [
'/<input name="customer\[tel\]"([^>]*)>/',
];
$addressform_confirm = preg_replace($replace, '', $addressform_confirm);
}
return $addressform_confirm;
}
add_filter( 'usces_filter_apply_addressform', 'custom_usces_filter_apply_addressform', 10, 3 );
都道府県とかだとselectとoptionで複数行になってしまうから、以下のように記述する。
'/<select name="customer\[pref\]"([^>]*)>([\s\S]*?)<\/select>/',