今回のテーマ
前回の記事の続きになります。
- 登録済みユーザーがログインすれば予約できるようにする
- ログインしていない人が予約フォームを開いたら、ログインをうながす
使うもの
- 使用中のテーマの「テーマのための関数(functions.php)」ファイル
ショートコードの書き換え
-
使用中のテーマの「テーマのための関数(functions.php)」ファイルをダウンロードします
-
functions.php に以下のコードを追記します。
これは、元のショートコードの内容をコピーして、ログイン中でなければメッセージを出すように手を加えています。123456789101112131415161718192021222324add_action( 'init', 'my_setting' );function my_setting(){remove_shortcode( 'attmgr_booking' );add_shortcode( 'attmgr_booking', 'booking_form_for_members_only' );}function booking_form_for_members_only( $atts, $content = null ) {global $attmgr;extract($atts = shortcode_atts(array(),$atts));if ( ! is_user_logged_in() ) {$html = '<p>登録済みユーザーのみご予約いただけます<br>';$html .= '<a href="'.wp_login_url( get_permalink() ).'">ログイン</a></p>';return $html;}$html = apply_filters( ATTMGR::PLUGIN_ID.'_shortcode_booking', $atts, $content );return $html;} -
変更した functions.php を上書きアップロードします
確認
-
ログインした状態で「予約フォーム」を開き、通常の表示内容を確認します
-
次に、一旦ログアウトして「予約フォーム」を開いてみます
以下のように表示されます -
ログインフォームへ移動してそのままログインすると、「予約フォーム」へ転送されます