WordPressプラグイン開発 – カンタンProWPを使うにはWordPressにログインする必要があります。

[temp id=2]

日曜プログラマーって言うと恥ずかしいですが、ちょこっとやってます。

カンタンProはプライベートな販売管理システムなので、他人には見せたくありません。そこで、WordPressにログインしないとカンタンProを使えないようにします。もちろん、内容の表示もできないようにします。

WordPressにログインしてカンタンProを使う

WEBアプリケーションの場合ユーザーログインは必須になりますが、WordPressのプラグインだと簡単にできます。WordPressにログインしているかどうかを判定するだけです。ログインしていないユーザーがサイトに来た場合、常にログインを要求します。(カンタンProがショートコードで設定されているページの場合)

本体ファイルで条件分岐

is_user_logged_in()は、ログインしているかどうかを判定します。

wp_login_form( $hoge )は、引数に$hogeに設定したログインオプションを読み込んでHTMLまたは文字列を返します。(’echo’ => trueの場合HTML)

▼ 実際のコード

//カンタンProを起動します
function kantan_pro_start(){

    //ログインしていれば続行
    if( is_user_logged_in() ){
        return $msg;
    }
    //ログインしていなければログインフォームを返す
    else{
        include("lib/kpwp-login-form.php");
        wp_login_form( $login_form );
    }
}

ログインフォーム(オプション)は外部ファイルで

wp_login_form( $hoge )で呼ばれる$hogeの設定は別ファイルにしました。kpwp-login-form.phpです。

▼ 実際のコード($hogeではなく$login_formにしています)

<h2>カンタンProを利用するにはWordPressにログインしてください。</h2>

<?php 
$login_form = array(
'echo' => true,
'redirect' => ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'],
'form_id' => 'loginform',
'label_username' => __( 'Username' ),
'label_password' => __( 'Password' ),
'label_remember' => __( 'Remember Me' ),
'label_log_in' => __( 'Log In' ),
'id_username' => 'user_login',
'id_password' => 'user_pass',
'id_remember' => 'rememberme',
'id_submit' => 'wp-submit',
'remember' => true,
'value_username' => '',
'value_remember' => false
);

?>

参考になったサイト

日本語コデックスが一番分かり安かった。

https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_login_form

まとめ

これで一応「ログインしてカンタンProを使う」という課題はできました。

WordPressの場合、複数のユーザー登録ができますので複数のユーザーでカンタンProを使える可能性があります。例えば、スタッフをWordPressにユーザー登録してカンタンProを共有するなんてことも夢ではなさそうです。

セキュリティーについては、WordPress(オヤジ)依存というわけです。ただし、プラグインの内容によっては直接プラグイン(ムスコ)に攻撃がくるかも?

そこは研究が必要です。

[temp id=1]
シェアする
購入する
購入する