[解決済み] 商品一覧ページに売切の表示を出したいのですが。

フォーラム 拡張プラグイン [解決済み] 商品一覧ページに売切の表示を出したいのですが。

  • このトピックには19件の返信、3人の参加者があり、最後にkanyouにより11年、 3ヶ月前に更新されました。
15件の投稿を表示中 - 1 - 15件目 (全20件中)
  • 投稿者
    投稿
  • #50596
    ipd
    参加者

    https://www.welcart.com/forum/topic.php?id=875

    上記トピックを参考に意味は理解したのですがコードの書き方がどうしても分かりませんで…

    ご教授頂けませんでしょうか?

    宜しくお願い致します。

    商品一覧レイアウト拡張プラグイン Item List Layoutを使用してThemeはデフォルトのもので無いものをカスタマイズして使用しております。

    #62600
    nanbu
    キーマスター

    こんにちは。

    どの変がわからないのか、もう少し絞り込んでご質問いただけますでしょうか。例えばこうしてみたけど何も表示されないや、このようなエラーが出るなど、実際に試してみたコードを見せていただくとどこに問題点があるのかがわかると思います。よろしくお願いいたします。

    #62601
    ipd
    参加者

    申し訳ありません、function.phpに下記コードを追加致しました。

    <?php

    add_filter(‘item_list_layout_filter_list’, ‘my_item_list_layout_filter_list’, 10, 3);

    function my_item_list_layout_filter_list(){

    $args = func_get_args();

    $post = $args[1];

    $opts = $args[2];

    $opts = $args[3];

    $width = $opts;

    $colum = $opts;

    $limargin = $opts;

    $lipadding = $opts;

    $liborder = $opts;

    $liwidth = ($width + $limargin) / $colum – $limargin – ($lipadding * 3) – ($liborder * 3);

    $liheight = $opts – $lipadding * 3;

    $txtheight = $opts;

    $imgwidth = $liwidth;

    $imgheight = $liheight – $txtheight;

    $border = $liborder ? ” : ‘border:0px’;

    $list = ‘<li id=”ill_li” class=”item_list_layout_li” style=”text-align: center; overflow: hidden; display: block; float: left; padding:’.$lipadding.’px; width:’.$liwidth.’px; height:’.$liheight.’px; margin-right:’.$limargin.’px; margin-bottom:’.$limargin.’px; ‘.$border.'”>ID) . ‘”>’ . usces_the_itemImage(0, $imgwidth, $imgheight, $post, ‘return’ ) . ‘<div class=”thumtitle”>’ . esc_html(usces_the_itemName(‘return’)) . ‘</div><div class=”zaiko”>’ . esc_html(usces_the_itemZaiko(‘return’)) . ‘</div><div class=”price”>’ . __(‘$’, ‘usces’) . number_format(usces_the_firstPrice(‘return’)) . $usces->getGuidTax() . ‘</div><div class=”exp”>’ . $excerpt . ‘</div>’ ;

    return $list;

    }

    ?>

    するとエラーで下記コードが出てしまいます。

    Warning: Division by zero in /export/sd203/www/jp/r/e/gmoserver/7/9/sd0211679/imperial-designworks.com/blog/wp-content/themes/gents-company/functions.php on line 13

    Fatal error: Call to a member function getGuidTax() on a non-object in /export/sd203/www/jp/r/e/gmoserver/7/9/sd0211679/imperial-designworks.com/blog/wp-content/themes/gents-company/functions.php on line 20

    どうか宜しくお願い致します。

    #62602
    nanbu
    キーマスター

    次の3つの修正でエラーは無くなると思います。

    まず一つは、関数my_item_list_layout_filter_list() の冒頭で$usces をグローバル宣言してください。(global $usces;

    次に、$opts = $args[3]; は必要ありませんので削除してください。

    もう一つは、$list に代入している部分でクオートの整合性が取れていないところがございます。('">ID) . '">'

    #62603
    ipd
    参加者

    お忙しい所わざわざご教授感謝致します、下記コードに編集致しましたがエラーが出ます…

    書き方間違えておりますでしょうか?

    コード

    <?php

    add_filter(‘item_list_layout_filter_list’, ‘my_item_list_layout_filter_list’, 10, 3);

    global $usces;function my_item_list_layout_filter_list(){

    $args = func_get_args();

    $post = $args[1];

    $opts = $args[2];

    $width = $opts;

    $colum = $opts;

    $limargin = $opts;

    $lipadding = $opts;

    $liborder = $opts;

    $liwidth = ($width + $limargin) / $colum – $limargin – ($lipadding * 3) – ($liborder * 3);

    $liheight = $opts – $lipadding * 3;

    $txtheight = $opts;

    $imgwidth = $liwidth;

    $imgheight = $liheight – $txtheight;

    $border = $liborder ? ” : ‘border:0px’;

    $list = ‘<li id=”ill_li” class=”item_list_layout_li” style=”text-align: center; overflow: hidden; display: block; float: left; padding:’.$lipadding.’px; width:’.$liwidth.’px; height:’.$liheight.’px; margin-right:’.$limargin.’px; margin-bottom:’.$limargin.’px; ‘.$border.’ “>ID) . ‘ “>’. usces_the_itemImage(0, $imgwidth, $imgheight, $post, ‘return’ ) . ‘<div class=”thumtitle”>’ . esc_html(usces_the_itemName(‘return’)) . ‘</div><div class=”zaiko”>’ . esc_html(usces_the_itemZaiko(‘return’)) . ‘</div><div class=”price”>’ . __(‘$’, ‘usces’) . number_format(usces_the_firstPrice(‘return’)) . $usces->getGuidTax() . ‘</div><div class=”exp”>’ . $excerpt . ‘</div>’ ;

    return $list;

    }

    ?>

    エラーコード

    Parse error: syntax error, unexpected ‘”‘ in /export/sd203/www/jp/r/e/gmoserver/7/9/sd0211679/imperial-designworks.com/blog/wp-content/themes/gents-company/functions.php on line 19

    #62604
    ipd
    参加者

    nanbu様

    その後も色々試しましたが変な文字が表示され商品詳細ページに飛ばないなどでどうにもおてあげです…

    単純にアイテムネーム、プライス、売切の場合売切を赤色で表示にしたいのですが…

    何とぞお力お貸し頂けませんでしょうか?

    #62606
    nanbu
    キーマスター

    global $usces; はmy_item_list_layout_filter_list()関数の中に入れます。つまり、$args = func_get_args(); の上となります。

    それと、前回ご説明いたしました「もう一つは、$list に代入している部分でクオートの整合性が取れていないところがございます。('”>ID) . ‘”>’)」の部分が直っておりません。たぶんコピーミスだと思いますのでもう一度確認してみてください。

    #62607
    ipd
    参加者

    nanbu様ありがとうございます!!

    下記の様に書いたら完璧でした!、ですが売り切れになっている商品も在庫ありの表示になってしまいます…どうしてでしょうか?…これはフィルターフックの問題では有りませんよね…

    文字も赤にできません…

    質問ばかりで申し訳有りません。

    <?php

    add_filter(‘item_list_layout_filter_list’, ‘my_item_list_layout_filter_list’, 10, 3);

    function my_item_list_layout_filter_list(){

    global $usces;

    $args = func_get_args();

    $post = $args[1];

    $opts = $args[2];

    $width = $opts;

    $colum = $opts;

    $limargin = $opts;

    $lipadding = $opts;

    $liborder = $opts;

    $liwidth = ($width + $limargin) / $colum – $limargin – ($lipadding * 2) – ($liborder * 2);

    $liheight = $opts – $lipadding * 2;

    $txtheight = $opts;

    $imgwidth = $liwidth;

    $imgheight = $liheight – $txtheight;

    $border = $liborder ? ” : ‘border:0px’;

    $list = ‘<li id=”ill_li” class=”item_list_layout_li” style=”text-align: center; overflow: hidden; display: block; float: left; padding:’.$lipadding.’px; width:’.$liwidth.’px; height:’.$liheight.’px; margin-right:’.$limargin.’px; margin-bottom:’.$limargin.’px; ‘.$border.'”>ID) . ‘”>’ . usces_the_itemImage(0, $imgwidth, $imgheight, $post, ‘return’ ) . ‘<div class=”thumtitle”>’ . esc_html(usces_the_itemName(‘return’)) . ‘</div><div class=”price”>’ . __(‘$’, ‘usces’) . number_format(usces_the_firstPrice(‘return’)) . $usces->getGuidTax() . ‘</div><div class=”exp”>’ . $excerpt . ‘</div><div class=”zaiko”>’ . esc_html(usces_the_itemZaiko(‘return’)) . ” . “”;

    return $list;

    }

    ?>

    #62608
    ipd
    参加者

    色はitem_list_layout.cssで変更できました!

    #62609
    ipd
    参加者

    nanbu様

    売り切れになっている商品も在庫ありの表示になってしまいます…これだけ何とかご教授下さいませ。

    お忙しいとは思いますが宜しくお願い致します。

    #62610
    ipd
    参加者

    ご教授いただけませんでしょうか?…

    #62611
    nanbu
    キーマスター

    何度かご説明いたしておりますが、$list に代入している部分で '”>ID) . ‘”>’ の部分が直っておりません。

    まずは、コードが正常にならなければ次へ進む事はできません。

    恐らくこうされたいのではないですか?現在のコードと見比べてみてください。

    $list = '<li id="ill_li" class="item_list_layout_li" style="text-align: center; overflow: hidden; display: block; float: left; padding:'.$lipadding.'px; width:'.$liwidth.'px; height:'.$liheight.'px; margin-right:'.$limargin.'px; margin-bottom:'.$limargin.'px; '.$border.'">'. usces_the_itemImage(0, $imgwidth, $imgheight, $post, 'return' ) . '<div class="thumtitle">' . esc_html(usces_the_itemName('return')) . '</div><div class="price">' . __('$', 'usces') . number_format(usces_the_firstPrice('return')) . $usces->getGuidTax() . '</div><div class="exp">' . $excerpt . '</div><div class="zaiko">' . esc_html(usces_the_itemZaiko('return'));

    これでよければ、次の問題の在庫の表示となります。

    そもそも、商品一覧は商品単位の表示となります。しかし在庫はSKU単位となっており、1商品の中にSKUが複数あった場合は、どのSKUの在庫を表示して良いのかWelcart は判断できません。

    とりあえず、最初のSKUの情報を取得するのであれば、$border = $liborder ? '' : 'border:0px'; の下に、usces_have_skus(); と追加してください。

    SKUが1つだけの場合は問題ありません。複数ある場合は最初のSKUが適用されます。

    文字色についてはスタイルシートの問題です。class=”price” と有りますので適宜CSSを調整してください。

    #62612
    ipd
    参加者

    nanbu様

    お忙しい中大変ありがとうございます。

    現在表示は思い通りに出来ていまして、教えて頂いた方法で、現在SKUの問題も解消されました、誠にありがとうございます。

    売り切れの商品のみ売り切れと表示にはどうしたら良いのでしょうか?

    因に今ご教授下さったコードとみくらべ<a href="' . get_permalink($post->ID) . '">' .が不要と言う事でしょうか?

    しかしながら<a href="' . get_permalink($post->ID) . '">' .をなくしました所商品一覧ページのサムネイルや商品名をクリックしても商品詳細ページへ飛ばなくなってしまいました…

    私のコードでは何かまずいものでしょうか?…

    #62613
    ipd
    参加者

    お願いできませんでしょうか?…

    #62614
    nanbu
    キーマスター

    こちらで提示させていただいたコードは、ipd さんが以前にここに投稿されたコードをもとにしています。アンカーが入っていないのはご自分で削除されたのではないかと思います。こちらでは削除していません。

    こちらでは、コードが間違っているかどうかを確認してお知らせできますが、ipd さんがやりたいと思う固有の表示に付きましては、ご自分でやっていただくしかありません。どうしてもご自分で無理な場合はWelcart レスキューを利用していただく事になります。

15件の投稿を表示中 - 1 - 15件目 (全20件中)
  • このトピックに返信するにはログインが必要です。