0

これは、製品ページで価格を生成するコードです。

<?php  echo $this->getPriceHtml($_product) ?>

*app/design/frontend/default/CUSTOM_TEMPLATE/template/catalog/product/view.phtml*

いくつかのカスタムオプションを備えたシンプルな製品があります。顧客がいずれかのオプションを選択すると、価格が上昇します。ここまではすべて正常に動作します。

私の質問は、同じページに価格を 2 回表示するにはどうすればよいですか (目的のためにこれが必要です)。

上記のコードをコピーして同じページの 2 か所に貼り付けようとしましたが、製品オプションを選択したときに 2 番目の価格が更新されないという問題があります。価格が更新されるのは 1 つだけで、2 つ目は更新されません。どうすればそれを機能させることができるかについてのアイデアはありますか?

4

2 に答える 2

2

新しい価格を計算するか、AJAX で取得する JavaScript がページにある可能性が高いです。したがって、価格は次のように出力されます。

<?php echo $this->getPriceHtml($_product) ?>

新しいものによって上書きされます。これを解決するには、Javascript を見つけて、これを行う場所を特定する必要があります。また、getPriceHtml 呼び出しを囲む HTML 要素を確認する必要があります。テンプレートには次のようなものがあると思います。

<p class="totalProductPrice"><?php echo $this->getPriceHtml($_product) ?></p>

2 番目の価格出力の出力を識別可能なクラス名または ID を持つ要素で囲む場合、Javascript を変更して、新しく計算された価格を元の要素と同様にその要素に出力できるはずです。

編集:

私自身のコードベースを確認したところ、お探しのファイルは/js/varien/Product.js. function 内で、reloadPrice: function()481 行目を確認します。

    if($('product-price-'+this.config.productId)){
        $('product-price-'+this.config.productId).innerHTML = price;
    }

スクリプトを変更して、2 番目の価格要素も更新します。

于 2013-10-17T11:49:34.247 に答える