WP Download ManagerでゲストチェックアウトができないからWordPressのユーザー登録でスパム対策することに。

WP Download Managerでダウンロード商品のゲストチェックアウト(サイトに登録やログインせずにチェックアウトする機能)を試行錯誤していますが、

どうにもGuest Ordersのショートコードがうまく通りませんので、

仕方なくWordPress側でユーザー登録をオンにしました。

この際にすごくスパムユーザーの登録が増えてしまいますので、

どうにかそうならないように、

日本語で答えを書かないとユーザー登録できない仕組みを調べました。

以下のコードをテーマのfunctions.phpに入れて保存/更新します。

質問と答えとエラーメッセージの文字列はあなたなりに変更してみてください。

add_action( 'register_form', 'add_register_field' );
function add_register_field() { ?>
    <p>
        <label><?php _e('質問をここに入れます。') ?><br />
        <input type="text" name="user_proof" id="user_proof" class="input" size="25" tabindex="20" /></label>
    </p>
<?php }
  
add_action( 'register_post', 'add_register_field_validate', 10, 3 );
function add_register_field_validate( $sanitized_user_login, $user_email, $errors) {
    if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) {
        return $errors->add( 'proofempty', '<strong>ERROR</strong>: 質問が空だった場合のエラーメッセージをここに。'  );
    } elseif ( strtolower( $_POST[ 'user_proof' ] ) != 'ここに答えを入れてください。この答えとマッチしないとエラーが出ます。' ) {
        return $errors->add( 'prooffail', '<strong>ERROR</strong>: 答えがマッチしなかったときのエラーメッセージをここに。'  );
    }
}

同時にWP Download Managerのところでログインページと登録ページを作って保存しておきました。

アバター画像

1982年生まれ、ヒップホップやラップビートの制作、及びアーティストのプロデュースやコンサルティングをしているビートメイカー兼音楽プロデューサーです。音楽活動と個人ブログを介して、スモールビジネスのウェブ上でのマーケティング戦略を研究しています。インターナショナル育ちのため、英語が分かります。趣味は筋トレ、写真加工、WordPressカスタマイズ、K-Pop、web3、NFT。韓国が大好き。

Genxをフォローする
ブログ日記
スポンサーリンク