2016年4月2日土曜日

Wordpress+Welcart(2) まずプラグインを作るとこから。

WP+WCの2回目。
でもよく考えると、WooCommerceもWCだね^^;

最初にやることは、ここらへんでいきなり質問!ではなくて、まず調べて解析なんですが、
当然のようにJUSTな検索なんかあるわけでもなく、
ここらへんを読むと、結果的に、『自分で解析しましょう!』ってなってます。

ということで、どうするかというと、

これを見ると(※テーマ:Riffles)、まずは"オプションを指定してください"というのを検索してみればよいようなきがするので、やってみます。
そうすると、こんなんが引っかかります。
  1. plugins/usc-e-shop/languages/usces-ja.po(2442): msgstr "オプションを指定してください。"  
  2. plugins/usc-e-shop/languages/usces-th.po(2199): msgstr "オプションを指定してください。"  
  3. plugins/usc-e-shop/languages/usces.pot(2256): msgstr "オプションを指定してください。"  

で、これは言語設定ファイルなので、開いてみると、
  1. msgid "Please appoint an option."  
  2. msgstr "オプションを指定してください。"  
って感じ。

よって、"Please appoint an option."をGREP。 とりあえずこれだけ発見。
  1. wp-content/plugins/usc-e-shop/templates/single_item.php(45): $html .= "/n";  
  2. wp-content/plugins/usc-e-shop/templates/single_item.php(102): $html .= "<table class="item_option"><caption>" . apply_filters('usces_filter_single_item_options_caption', __('Please appoint an option.''usces'), $post) . "</caption></table>  
  3. /n";  
  4. wp-content/plugins/usc-e-shop/theme/welcart_default/wc_templates/wc_item_single.php(51):    
  5. wp-content/plugins/usc-e-shop/theme/welcart_default/wc_templates/wc_item_single.php(108):   
  6. wp-content/themes/riffles_ver1.1/wc_templates/wc_item_single.php(169):   
  7. wp-content/themes/riffles_ver1.1/wc_templates/wc_item_single.php(288):   
  8. wp-content/themes/welcart_default/wc_templates/wc_item_single.php(51):   
  9. wp-content/themes/welcart_default/wc_templates/wc_item_single.php(108):   
  10. wp-content/themes/welcart_default_kid/wc_templates/wc_item_single.php(51):   
  11. wp-content/themes/welcart_default_kid/wc_templates/wc_item_single.php(108): <table class="item_option"><caption>" . apply_filters('usces_filter_single_item_options_caption', __('Please appoint an option.', 'usces'), $post) . "</caption><caption></caption><caption></caption><caption></caption><caption></caption><caption></caption><caption></caption><caption></caption><caption></caption>  
  12.   
  13. </table>  
ということで、single_item.php(45):を調べてみます。ってやってみてハマってしまいました。 まぁCODEをたいして理解しないでやってるのが問題なのですが、これを追っていくと、
  1. if (usces_is_options()) {  
  2.   $html .= "\n";  
  3.   while (usces_have_options()) {  
  4.     $opttr = "";  
  5.     $html .= apply_filters('usces_filter_singleitem_option', $opttr, usces_getItemOptName(), NULL) . "\n";  
  6.   }  
  7.   $html .= "<table class="item_option"><caption>" . apply_filters('usces_filter_single_item_options_caption', __('Please appoint an option.''usces'), $post) . "</caption><tbody>  
  8. <tr><th>" . esc_html(usces_getItemOptName()) . '</th><td>' . usces_the_itemOption(usces_getItemOptName(),'','return') . "</td></tr>  
  9. </tbody></table>  
  10. \n";  
  11. }  
こんなものを発見するのです。問題はコレ。
  1. apply_filters('usces_filter_singleitem_option'  
これをフックすれば何か楽しいことになりそうなきがするじゃないですか、よって、プラグインを書いて検証です。 プラグインは以下。
  1. <?php  
  2. /* 
  3. Plugin Name: Wlecart keiskes Custom Plugin 
  4. Author: keiske 
  5.  
  6. */  
  7. /* 
  8. st-wc-custom.php 
  9. */  
  10. //---------------------------------------  
  11. add_filter('usces_filter_singleitem_option','st_usces_filter_singleitem_option');  
  12. //---------------------------------------  
  13. function st_usces_filter_singleitem_option($opttr="", $name="", $alt=""){  
  14.  deBug($opttr);  
  15.  return $opttr;  
  16. }  
  17. //---------------------------------------  
  18. function deBug($v,$fl="/web/st-wc-cuatom-php.html"){  
  19.  $f = fopen($fl, "a");  
  20.  fwrite($f, $v."\n");  
  21.  fclose($f);  
  22. }  
  23. //---------------------------------------  
  24. ?>  
でやっていると、、そもそも、これ、呼ばれて無い!!!(LOG、書かれず。^^;) つづく。

0 件のコメント:

コメントを投稿