4

価格によって表示方法が異なる商品もあります。$price関連するテーマファイル内から変数の値を簡単に確認できることを望みました$priceが、通貨形式の文字列が含まれています。また、OpenCartはさまざまな通貨形式をサポートしているため、価格文字列を数値に戻すためのシンプルで堅牢な方法はありません。

製品コントローラークラスを調べましたControllerProductProduct。私が知る限り、OpenCartは数値の価格値をビューに公開していません。コントローラクラスを変更することはできますが、更新が複雑になるため、変更したくありません。

私は何かを見落としましたか?OpenCartテーマ内から価格の数値比較を実行する簡単な方法はありませんか?

4

2 に答える 2

7

product.php()のv1.4.9.4を見るとControllerProductProduct、あなたが話している$priceのフォーマットされた値を設定する次のコードがわかります。

if ($discount) {
    $price = $this->currency->format($this->tax->calculate($discount, $result['tax_class_id'], $this->config->get('config_tax')));
} else {
    $price = $this->currency->format($this->tax->calculate($result['price'],$result['tax_class_id'], $this->config->get('config_tax')));

これを次のように変えてみませんか...

if ($discount) {
    $price_num = $this->tax->calculate($discount, $result['tax_class_id'], $this->config->get('config_tax'));
    $price = $this->currency->format($price_num);
} else {
    $price_num = $this->tax->calculate($result['price'],$result['tax_class_id'], $this->config->get('config_tax'));
    $price = $this->currency->format($price_num);

そして、これから数行下に、次を追加することで、この$price_num値をテンプレートに渡すことができます。

$this->data['products'][] = array(
    'product_id'    => $result['product_id'],
    ...
    'price'         => $price,
    'price_num'     => $price_num,
    ...

あなたが必要なことをする必要があります

于 2011-06-28T20:16:20.240 に答える
0

残念ながら、答えはノーです。OpenCartは数値の価格値をテーマに公開していません。コアファイルを変更する必要があります。Bradがその方法を説明しています

于 2012-07-07T19:04:06.703 に答える