[Welcart]メタボックスを商品情報編集ページにのみ追加する

  • 更新日:
  • 公開日:

Welcartの商品情報編集ページにメタボックスを追加したい。しかし、ただ普通にadd_meta_boxesにフックしてadd_meta_box()を実行させるだけでは通常の投稿編集ページにもメタボックスが追加されてしまいます。

add_meta_boxesには投稿タイプ用のアクション名も用意されていますが、Welcartの商品情報編集ページはカスタム投稿タイプで実装されてはいない模様(というかWelcartの商品の投稿タイプは’post’ですしね)。

となって悩んで調べたのですが、今回はとあるWelcart専用プラグインのコードを参考にさせていただきました。

商品情報編集ページにのみメタボックスを追加

メタボックスを追加するコードはこんな感じです。

function add_custom_metabox() {
    $itemcode = ''; $page = '';
    if ( isset($_GET['post']) ) $itemcode = get_post_meta( absint($_GET['post']), '_itemCode', true );
    if ( isset($_GET['page']) ) $page = $_GET['page'];
    if ( $page == 'usces_itemedit' || $page == 'usces_itemnew' || $itemcode ) {
        add_meta_box( 'item-metabox', '商品情報編集メタボックス', 'metabox_contents', 'post', 'side', 'low' );
    }
}
add_action( 'add_meta_boxes', 'add_custom_metabox' );

function metabox_contents() {
    //メタボックスの内容
}

$_GETに格納されている値で判定してるんですね。6行目でメタボックスを追加しています。

コードの参考になったプラグイン

参考にさせて頂いたWelcart専用プラグインは「Welcart Custom Media Uploader」というものです。

このプラグインが解決してくれる問題は商品画像のアップロード。一々メディアページを開いて画像を追加していくのは面倒ですよね。これを商品情報編集ページで記事編集と同時に画像のアップロード&リネームを行うというもの。実際使ってみるとかなり便利でした。オススメです。

書いた人

Symbol Mark

Ryoichi(しつ)

除菌ティッシュを買い込んで使いきれずによく乾かす人。

療養目的で退職し、どうやって生きていくか模索中。最近は勉強目的でLaravelやVue.js弄ったり、趣味で音で遊んでます。

※2019年10月16日現在ブログリニューアル中です。崩れなどが発生していたらすみません。

うぇぶ: @s_ryone