個別商品表示画面から、商品マスタ編集画面に移動できると商品マスタ編集の効率が飛躍的の向上します。
しかしWelcartではこの機能が提供されていません。
そこで、ここではこれを可能とする関数の作成方法を解説します。
これは下図の様に動作する関数になります。
1.この関数を作成する背景
WordPressでは「single.php」の中に「edit_post_link()」を記述しておくと、投稿の編集画面にジャンプし、コンテンツが編集できる様になっています。(利用できるのは管理者のみ)
Welcartでは、上記関数を使うと投稿文書の画面に行きますが、「Welcart shop→商品マスタ」に行くことはできません。
そこで新たな関数を作成し、商品マスタに行ける様にします。
2.関数の作成方針
1.関数名と引数
関数名:my_edit_post_link($link, $before, $after)
引数 | デフォルト値 | 備考 |
$link | ‘編集’ | 表示する文字 |
$before | ‘<‘ | 表示する文字の前に付ける文字 |
$after | ‘>’ | 表示する文字の後ろに付ける文字 |
3.プログラムの詳細
1.プログラム
func¥welcart¥settingフォルダに下に「my_edit_post_link.php」を作成し下記を追加します。
<?php /***************************************************************************** Welcartの商品マスタへのリンクURLを表示する関数 $link:リンクテキスト $before:リンクテキストの前へ挿入するテキスト $after:リンクテキストの後ろに挿入するテキスト ******************************************************************************/ function my_edit_post_link($link='編集', $before='<', $after='>'){ if(!current_user_can('administrator')){return;} /* 管理者権限が無い場合は終了 */ $site = get_site_url(); $id_before = '/wp-admin/admin.php?page=usces_itemedit&action=edit&post='; $url = $site.$id_before.get_the_id(); ?> <a href='<?php echo $url;?>'><?php echo $before.$link.$after;?></a> <?php } ?>
<解説>
商品マスタにジャンプするURLは下記の形式になります。
「サイトのURL」+「/wp-admin/admin.php?page=usces_itemedit&action=edit&post=」+「ポストID」
そこで下記関数を使って上記を生成します。
関数 | 解説 |
get_site_url() | サイトの URL を返します 例)https://hnw.ddnsfree/welcart |
get_the_id() | 現在の投稿のID(数値)を取得します これが現在の商品です |
これを上記プログラムで生成しているだけです。
2.プログラムのロード
functions.phpに下記を記述します
/* 商品マスタへのリンク関数 */ get_template_part('func/welcart/setting/my_edit_post_link');
3.上記関数を利用する場所
個別商品表示プログラム「wc_item_single.php」の中に記述します。
子テーマに上記プログラムが無い場合は親テーマの「wc_templates」フォルダと合わせて、子テーマにコピーして下さい。
関数を追加する場所は下記になります。
<div id="primary" class="site-content">
<div id="content" role="main">
個別商品の各種情報の表示
・・・・
my_edit_post_link(’商品編集,'<','>')
</div><!-- #content -->
</div><!-- #primary -->
■追加する場所は「#content」の終了の前です。
上記のリンク文字は<商品編集>を表示しています。