Magentoでは、バックエンド/ショッピングカートの実際の数値を変更せずに、カスタムPHP関数をフロントエンドの価格の表示に適用したいと思います。
具体的には、価格にセントがない場合の表示価格の小数を削除したいと思います。たとえば、$19.00は$19と表示されますが、$19.99は$19.99と表示されます。
PHP.netで、この変更を実行するPHP関数を見つけました。
// formats money to a whole number or with 2 decimals; includes a dollar sign in front
function formatMoney($number, $cents = 1) { // cents: 0=never, 1=if needed, 2=always
if (is_numeric($number)) { // a number
if (!$number) { // zero
$money = ($cents == 2 ? '0.00' : '0'); // output zero
} else { // value
if (floor($number) == $number) { // whole number
$money = number_format($number, ($cents == 2 ? 2 : 0)); // format
} else { // cents
$money = number_format(round($number, 2), ($cents == 0 ? 0 : 2)); // format
} // integer or decimal
} // value
return $money;
} // numeric
} // formatMoney
価格はいたるところに表示されるため、この機能を適用するためにMagentoテンプレートを変更する必要はありません。すべてのテンプレートを更新するのは悪夢です。
この関数を使用して価格の表示をグローバルにフォーマットし、1つの場所からすべての価格の表示に影響を与えることができる場所があるかどうかを知りたいです。
すでに、次のようなさまざまなMagentoファイルを数時間かけて調べました。
app / code / core / Mage / Directory / Model / Currency.php
public function format <-この関数は、価格の表示ではなく、実際の価格を変更します。
app / code / core / Mage / Catalog / Model / Product.php:
public function getFormatedPrice <-この関数は有望に見えましたが、私には何もしませんでした。
私はまた、明白な場所として何も飛び出さずにこれらのファイルを見ました:
app / code / core / Mage / Catalog / Block / Product.php
app / code / core / Mage / Catalog / Block / Product / Price.php
app / code / core / Mage / Catalog / Block / Product / View.php
カスタムPHP関数を価格の表示に適用するためにハッキングできるMagentoの場所を1つ見つけることができると思いますか(ショッピングカートの実際の数値ではありません)。