メニュー

【WordPress】Welcartで必須を外す&項目を消す

必須のアスタリスクを外す

参考記事を見て試しに「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>/',