WEB

Welcart + Wishlist(お気に入り)プラグイン(書きかけ)

客様のご要望により、作成した案件で、
お気に入り的な機能にいろいろ追加したのですが、

その劣化版として、

標準で実装されていない(はず)Welcartのお気に入りプラグインを公開します。

※Welcartの実体に多少の改良が必要なので、
バージョンアップには、都度修正が必要です。

  1. まず、welcart_favorite をDLし、プラグインを有効かしてください。
  2. また、smarty のプラグインが別途必要です。
    プラグインの新規追加で、「smarty for wordpress」をインストール
    ※たいしたコードではありませんが、HTMLの中にPHPをだらだら書くのが、好きになれなくて・・・(特に、ループ)
  3. themes > welcart_default > wc_templates > wc_item_sisngle.php
    [25行目]あたりに、
    [php]
    <!– Welcart favorite –>
    <!–?php welcart_favorite_show_button(get_the_ID()); ?–>
    [/php]
    を追加してください。
  4. 固定ページを作成し、スラグを「welcart_favorite」とし、
    メニューを作り、名前は、「お気に入り」とか「Wishlist」に。
    プラグインフォルダー内の「welcart_favorite.html」から出力しますので、本文は不要です。
    デザイン変更は、このファイルを修正してください。

Smarty for WordPressのいらないバージョンが出来たら、
そのうち、プラグイン登録でもします。

-

add_filter('the_contents', "call_function");

納期間もないのに、
思いっきり、躓いてしまったので、記録しておく。

ある日、
固定ページやWelcartの商品ページの記事が、
表示されていないことに気づいた。

と思い、
追加した思い当たるところを探った結果、

今回実装した「Welcart 用Wishist」内で、
add_filter(‘the_contents’, “call_function”);

が悪さしていることがわかり、コメントアウトしてみると、
正常に固定ページなどが表示されるが、

error_log($err_no & 2039)?で全エラーをはき出すも、
エラーログにも記述はなく、
困り果て、固定ページに直接関数宣言し、一時しのぎしたが、
しかし、
これまで、正常に動いていたコードだが、なぜ?

ちょっと、兆しが・・・

$member_idの項目に、本来表示されるべき、コンテンツが入っていた。

最初は、気づかなかったが、
日を改めれば、気づくこともよくあるもので、

add_filter(‘the_content’, X)
の、Xの関数宣言で、
ある日から、$member_idを引数として、入れたが、

add_filterで読み込んだときには、
この引数には、本来の記事が入っていて、
なにも処理をしないときは、returnには、これを返してやらないとダメだったみたい。

add_filterでは、スラグで処理するか、しないかを判別しているため、
関係ないページは、returnで、呼び出し元に戻していたが、

return $menber_id;

元のデータを返してやることが、重要。

-