在這裏你將可以添加自定義標籤,就像你想使用woocommerce_price_html
和woocommerce_variation_price_html
過濾器鉤子鉤住(適用於簡單和變量的產品定製功能。
對於最小/最大價格變量的產品,我們需要在woocommerce_variation_sale_price_html
過濾鉤子勾住了分離功能
更新:因爲我的代碼現在也會在單個產品上處理「每打」,您必須刪除您的自定義CSS規則.price .amount:after { content: " per dozen";}
。
這將避免有重複「每打」無處不在。
但它不是可以設置不同的標籤上根據所選擇的屬性值,實時價格。對於使用使用Javascript/jQuery的,因爲這是在客戶端的實時事件的唯一途徑...
UPDATE2
這裏是工作和測試代碼(見截圖年底):
add_filter('woocommerce_variation_price_html','prices_custom_labels', 10, 2);
add_filter('woocommerce_price_html','prices_custom_labels', 10, 2);
function prices_custom_labels($price, $product){
// Custom label name
$per_dozen = ' '. __('per dozen', 'woocommerce');
// Set HERE your "quantity" attribute slug
$attribute_qty_slug = 'pa_quantity';
$attribute_qty_slug_key = 'attribute_'.$attribute_qty_slug;
$append_label = '';
// 1) Variable products
if ($product->product_type != 'simple' && $product->variation_id) {
// Getting the attribute "quantity" value
$attribute_qty_is_set = $product->variation_data[$attribute_qty_slug_key];
// if "quantity" not set we display " per dozen"
if(! $attribute_qty_is_set)
$append_label = $per_dozen;
// Outputed price + custom label
$price = '<ins class="highlight">'.woocommerce_price($product->regular_price).$append_label.'</ins>';
}
// 2) Simple products
else
{
// Here the output price + custom default label
$price = '<ins class="highlight">'.woocommerce_price($product->regular_price).$per_dozen.'</ins>';
}
return $price;
}
add_filter('woocommerce_variable_price_html', 'prices_custom_labels_min_max', 20, 2);
function prices_custom_labels_min_max($price, $product) {
// Custom label name
$per_dozen = ' '. __('per dozen', 'woocommerce');
$per_case = ' '. __('per case', 'woocommerce');
// Set HERE your quantity attribute slug
$attribute_qty_slug = 'pa_quantity';
// Getting the min and max variations prices
$variation_min_reg_price = $product->get_variation_regular_price('min', true);
$variation_max_reg_price = $product->get_variation_regular_price('max', true);
$variation_reg_price = $product->get_variation_regular_price();
if($variation_min_reg_price == $variation_max_reg_price)
{
$price = '<ins class="highlight">'.woocommerce_price($variation_reg_price) . $per_dozen . '</ins>';
}
else
{
if(!in_array($attribute_qty_slug, array_keys($product->get_attributes())))
{
$price = '<ins class="highlight">' . woocommerce_price($variation_min_reg_price) . $per_dozen . ' - ' . woocommerce_price($variation_max_reg_price) . $per_dozen . '</ins>';
}
else
{
$price = '<ins class="highlight">' . woocommerce_price($variation_min_reg_price) . $per_dozen . ' - ' . woocommerce_price($variation_max_reg_price) . $per_case . '</ins>';
}
}
return $price;
}
代碼放在您的活動子主題(或主題的function.php文件),或者也可以任何插件文件。
這裏是我的測試服務器真實截圖:
此代碼測試,真正的作品。
相關答案:
會發生什麼事和你想怎麼發生的呢? –
你在我的問題中檢查了鏈接嗎?目前有 $每打5.50 - 每打 $ 100.00,並希望像顯示每打 $ 5.50 - $ 100.00每箱 瞭解,價格爲一塊,並批量價格。 – Dora
我無法檢查外部鏈接。你需要提供一個[mcve] –