1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
您的上述過(guò)濾器(返回)會(huì)觸發(fā)functiontrue
的執(zhí)行,該函數(shù)確實(shí)僅在價(jià)格只有 0 位小數(shù)時(shí)才刪除零。wc_trim_zeros()
你需要的是使用formatted_woocommerce_price
鉤子來(lái)代替。
下面的過(guò)濾器將刪除所有尾隨零:
add_filter('formatted_woocommerce_price', function($formatted_price, $price, $decimals, $decimal_separator) {
? ? // Need to trim 0s only if we have the decimal separator present.
? ? if (strpos($formatted_price, $decimal_separator) !== false) {
? ? ? ? $formatted_price = rtrim($formatted_price, '0');
? ? ? ? // After trimming trailing 0s, it may happen that the decimal separator will remain there trailing... just get rid of it, if it's the case.
? ? ? ? $formatted_price = rtrim($formatted_price, $decimal_separator);
? ? }
? ? return $formatted_price;
}, 10, 4);
更新:如果是第三個(gè)也是最后一個(gè)小數(shù),下面的代碼只會(huì)刪除尾隨零:
add_filter('formatted_woocommerce_price', function($formatted_price, $price, $decimals, $decimal_separator) {
? ? // Need to trim 0s only if we have the decimal separator present.
? ? if (strpos($formatted_price, $decimal_separator) !== false) {
? ? ? ? $formatted_price = preg_replace('/^(\d+' . preg_quote($decimal_separator, '/' ) . '\d{2})0$/', "$1", $formatted_price);
? ? }
? ? return $formatted_price;
}, 10, 4);
免責(zé)聲明:代碼未經(jīng)嘗試,直接寫在答案框中。
- 1 回答
- 0 關(guān)注
- 176 瀏覽
添加回答
舉報(bào)