まず用意するもの
まず、固定ページで使用するテンプレートを作成し、固定ページを作成します。<?php /** * Template Name: Welcartリダイレクトテスト */ ?> <form action="<?php the_permalink(); ?>" method="post"> <input name="jibanyan" type="submit" value="送信"> </form>
を指定しており、自分自身に戻るURLを指定してあるだけである点とinputのname属性には'jibanyan'が指定してあり、 $_POST['jibanyan']がセットされ送信されるという点です。
regist_actionに登録する
function regist_action(){ ・・・中略・・・ usces_register_action('front_ajax', 'post', 'usces_ajax_action', NULL, 'front_ajax'); // add yokomee 2014.11.03 blogger usces_register_action('whisper', 'post', 'jibanyan', NULL, 'komasan'); // /add yokomee 2014.11.03 blogger }
function usces_register_action($handle, $type, $key, $value, $function){
usces_register_actionメソッドで指定したコールバック関数を作る
次に先ほどの登録によりコールバックされる関数を作成します。名前は先ほどの登録のとおり'komasan'とし、functions.phpに定義します。もしグローバル領域でなく、usc_e_shopクラスに定義する場合はad_controllerメソッドの上の方にusc_e_shopクラス内に定義が存在することを示すリスト、$action_arrayという変数がありますので、そこに'komasan'を追加します。今回は行いません。function komasan() { global $usces; $usces->page = 'ke-ta'; add_action('template_redirect', array($usces, 'template_redirect')); }
template_redirectメソッドに登録
template_redirectメソッドに先ほどのkomasanメソッドにより$usces->pageが'ke-ta'にされたときの処理を登録します。function template_redirect () { global $post, $usces_entries, $usces_carts, $usces_members, $usces_gp, $member_regmode; if( apply_filters('usces_action_template_redirect', false) ) return;//Deprecated if( apply_filters('usces_filter_template_redirect', false) ) return; if( is_single() && 'item' == $post->post_mime_type ) { ・・・中略・・・ }else{ // add yokomee 2014.11.03 blogger switch($this->page) { case 'ke-ta': if(file_exists(get_stylesheet_directory() . '/youkai_watchichi.php')) { include(get_stylesheet_directory() . '/youkai_watchichi.php'); exit; } } // /add yokomee 2014.11.03 blogger // remove_action('the_post', array(&$this, 'goDefaultPage')); } }
<h1>妖怪ウォッチ</h1> <p>『妖怪ウォッチ』(ようかいウォッチ)は、レベルファイブから2013年7月11日に発売されたニンテンドー3DS専用ゲームソフト。</p>
まとめ
以上で、独自の固定ページから、Welcartのリダイレクト処理を通じて、特定の処理を行った後に、別のページにredirectする流れを作ることができました。今回の行った処理を応用すれば、Welcartの用意したページ遷移に割り込んで独自の処理を追加したり、また、Welcartがページ遷移間で何を行っているかの理解の助けになるのではないかと思います。
0 件のコメント:
コメントを投稿