2016-05-07 16 views
0

現在のフードの使い方がうまくいかないことを知りたいだけですか?カスタムプラグインのためのWoocommerceフックの使用

たとえば、単一の商品ページの商品説明の後に自分のhtmlを出力しようとしています。しかし何も表示されません。私はリファレンスから正しいフックを得ていると確信しています。

あなたはこのようにそれを行う必要があるおかげで

function plugin_output() { 
loadAssets(); 
$html = ' 
     <div id="product-configurator"> 
     <div id="configurator-menu-items"> 
      <div id="appLogo"> 
      <img src="'.plugins_url("/product-configurator/app_logo.png").'" alt="Shades By Us" /> 
      </div> 
      <div id="configurator-tab1" class="configurator-tab" data-page="configurator-panel1">Shape</div> 
      <div id="configurator-tab2" class="configurator-tab" data-page="configurator-panel2">Size</div> 
      <div id="configurator-tab3" class="configurator-tab" data-page="configurator-panel3">Color</div> 
      <div id="configurator-variables" class="variables-current"> 
      <p class="variables-title">Your Selection</p> 
      <ul> 
       <li class="configurator-variables">Shape: <span id="current_model"></span></li> 
       <li class="configurator-variables">Colors: </li> 
       <li class="configurator-variables">Size: </li> 
       <li class="configurator-variables">Quantity: </li> 
       <li class="configurator-variables">Total Price: </li> 
      </ul> 
      </div> 
     </div> 
     <div id="configurator-panels"> 
      <div class="configurator-panel" id="configurator-panel1"> 
      <canvas class="product-canvas"></canvas> 
      <div id="defaultModels"> 
       <div class="modelBtn modelBtn1" id="model1"></div> 
       <div class="modelBtn modelBtn2" id="model2"></div> 
       <div class="modelBtn modelBtn3" id="model3"></div> 
       <div class="modelBtn modelBtn4" id="model4"></div> 
      </div> 
      </div> 
      <div class="configurator-panel" id="configurator-panel2"> 
      <canvas class="product-canvas"></canvas> 
      <div id="sizeSelection"> 
       <div class="sizeSelector" id="selectorSize1"> 
       <ul> 
        <li class="sizeSelectTitle">Bottom</li> 
        <li class="sizeSelect sizeBottom" id="size1">T 30/8 40</li> 
        <li class="sizeSelect sizeBottom" id="size2">T 40/8 50</li> 
        <li class="sizeSelect sizeBottom" id="size3">T 50/8 60</li> 
        <li class="sizeSelect sizeBottom" id="size4">T 70/8 80</li> 
       </ul> 
       </div> 
       <div class="sizeSelector" id="selectorSize2"> 
       <ul> 
        <li class="sizeSelectTitle">Height</li> 
        <li class="sizeSelect sizeHeight" id="size5">30 cm</li> 
        <li class="sizeSelect sizeHeight" id="size6">40 cm</li> 
        <li class="sizeSelect sizeHeight" id="size7">50 cm</li> 
        <li class="sizeSelect sizeHeight" id="size8">70 cm</li> 
       </ul> 
       </div> 
      </div> 
      </div> 
      <div class="configurator-panel" id="configurator-panel3"> 
      <canvas class="product-canvas"></canvas> 
      </div> 
      <a id="next-btn-configurator" onclick="">Move On</a> 
     </div> 
     </div> 
'; 
return $html; 
} 
add_shortcode("product-configurator", "plugin_handler"); 
do_action('woocommerce_after_single_product_summary', 'plugin_output'); 
+1

あなたは 'add_action()'の代わりに 'do_actionを()'を使用する必要があります。そして 'return'の代わりに '$ html'を' echo 'します。 – helgatheviking

答えて

0

:代わりにdo_actionの

function plugin_output() { 
    loadAssets(); 
    $html = 'content here...'; 
    echo $html; 
} 
add_action('woocommerce_after_single_product_summary', 'plugin_output'); 

add_actionの注意使用は、()()。あなたのハンドラから値を返すことを除いて

同じことが、フックをフィルタリングするために適用されます。

function my_handler($value) { 

    // Do something with $value here... 

    return $value; 
} 
add_filter('some_filter_hook', 'my_handler'); 
関連する問題