カート内の価格と小計を表示する文字列をフィルタリングする必要があります。あなたが言及したリンクは、実際の価格を変更することについて話しました。あなたの場合、実際の価格を後で設定するまで、価格は $ 0です。そこカートはあまりに合計のために、おそらくフィルタですが、これは、開始する必要があります:カスタムになるように構成している
もちろん
add_filter('woocommerce_cart_item_price', 'so_38057349_cart_item_price', 10, 3);
function so_38057349_cart_item_price($price, $cart_item, $cart_item_key) {
if ($cart_item[ 'data' ]->price == 0) {
$price = __('Special Order', 'yourtheme');
}
return $price;
}
add_filter('woocommerce_cart_item_subtotal', 'so_38057349_cart_item_subtotal', 10, 3);
function so_38057349_cart_item_subtotal($subtotal, $cart_item, $cart_item_key) {
if ($cart_item[ 'data' ]->price == 0) {
$subtotal = __('To be determined', 'yourtheme');
}
return $subtotal;
}
add_filter('woocommerce_order_formatted_line_subtotal', 'so_38057349_order_item_subtotal', 10, 3);
function so_38057349_order_item_subtotal($subtotal, $item, $order) {
if (isset($item[ 'line_subtotal' ]) && $item[ 'line_subtotal' ] == 0) {
$subtotal = __('To be determined', 'yourtheme');
}
return $subtotal;
}
、これも0価格ですべての製品に適用されますし、そうでないかもしれない唯一のもの私がここで提供したより条件付きのロジックが必要な場合があります。
あなたのコメントをフォローアップする.... woocommerce_order_amount_total
は合計の数値であり、表示されるhtmlではありません。 cart-totals.php
テンプレートで呼び出されている関数を見ることができます。
function so_38057349_woocommerce_cart_subtotal($cart_subtotal, $compound, $cart) {
if($cart->subtotal == 0){
$cart_subtotal = __('Order subtotal to be determined', 'yourtheme');
}
return $cart_subtotal;
};
add_filter('woocommerce_cart_subtotal', 'so_38057349_woocommerce_cart_subtotal', 10, 3);
// define the woocommerce_order_amount_total callback
function so_38057349_woocommerce_order_amount_total($order_total) {
if(WC()->cart->get_total() == 0){
$order_total = __('Order total to be determined', 'yourtheme');
}
return $order_total;
};
add_filter('woocommerce_cart_totals_order_total_html', 'so_38057349_woocommerce_order_amount_total');
更新スクリーンショット:ヘルガの答えに拡大
本当にありがとうございました。それはまさに必要なものです。あなたの例を拡大して、カート&チェックアウトのページもカバーしてください! – radug
私の編集をチェックしてください。あなたの質問のエラーと同様に 'woocommerce_order_amount_total'はHTML文字列ではありません。 – helgatheviking