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

このブログは初心者がPHPを独習する過程で備忘録的に書いています。内容に不理解による誤りがあるかもしれません。もし、誤りがありましたらご指摘頂けば幸いです。

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

カンタン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
);

?>

参考になったサイト

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

テンプレートタグ/wp login form - WordPress Codex 日本語版

まとめ

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

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

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

そこは研究が必要です。

カンタンProWPとは
ファイルメーカーProを使用しないでWEB上でカンタンProの機能を実現するWordPressのプラグインです。2019年7月4日から開発を始めています。WordPressとは、世界で最も使われているCMS(サイト構築ツール)です。

だれでも手軽に、どこでも、安価にカンタンProを利用できるようにすることが開発の目的です。PHP(プログラミング言語)を使った開発になります。PHPについて一から勉強して開発を進めていきます。

このブログカテゴリーでは、その学習と開発過程を公開しています。

コメント