根据 WooCommerce 产品价格添加免费送货通知
Add a free shipping notice based on WooCommerce product price
我正在尝试为两种情况制作自定义代码(同时考虑简单和可变产品):
- 如果价格低于 25 欧元,1 个免费送货通知
- 如果价格高于 25 欧元,1 个免费送货通知
这是我的代码尝试:
/**
* FREE SHIPPING NOTICE IF PRICE BELOW 25 €
*/
add_action( 'woocommerce_single_product_summary', 'custom_text1', 15 );
function custom_text1() {
// We retrieve the minimum of the product
$min_price = $product->get_variation_price( 'min', true );
// If price is lower than 25, show first label
if ($min_price < 25) {
print '<p class="custom_text1">+ livraison gratuite à partir de 25 €</br>(Belgique, France, Pays-Bas)</p>';
}
}
/**
* FREE SHIPPING NOTICE IF PRICE ABOVE 25 €
*/
add_action( 'woocommerce_single_product_summary', 'custom_text2', 15 );
function custom_text2() {
// We retrieve the minimum of the product
$min_price = $product->get_variation_price( 'min', true );
// If price is higher than 25, show second label
if ($min_price >= 25) {
print '<p class="custom_text2">+ livraison gratuite</br>(Belgique, France, Pays-Bas)</p>';
}
}
我经验不足,行不通
我做错了什么?有人可以帮助我更好地实现这一目标吗?
需要定义 WC_Product
对象 $product
,您可以将两个函数合并为一个,用于可变产品和其他产品类型,例如:
add_action( 'woocommerce_single_product_summary', 'custom_single_product_summary_text', 15 );
function custom_single_product_summary_text() {
global $product;
$price_threshold = 25;
// Avoid 'cadeaux' product category
if( has_term( array('Cadeaux'), 'product_cat', $product->get_id() ) ) {
return;
}
if( $product->is_type('variable') ) {
$price = $product->get_variation_price( 'min', true ); // Min price
} else {
$price = wc_get_price_to_display( $product );
}
// If price is lower than 25
if ( $price < $price_threshold ) {
$message = __("+ livraison gratuite jusqu'à 25€</br>(Belgique, France, Pays-Bas)", "text_domain");
}
// If price is up to 25
else {
$message = __("+ livraison gratuite à partir de 25 € </br>(Belgique, France, Pays-Bas)", "text_domain");
}
echo '<p class="custom_text1">' . $message . '</p>';
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
我正在尝试为两种情况制作自定义代码(同时考虑简单和可变产品):
- 如果价格低于 25 欧元,1 个免费送货通知
- 如果价格高于 25 欧元,1 个免费送货通知
这是我的代码尝试:
/**
* FREE SHIPPING NOTICE IF PRICE BELOW 25 €
*/
add_action( 'woocommerce_single_product_summary', 'custom_text1', 15 );
function custom_text1() {
// We retrieve the minimum of the product
$min_price = $product->get_variation_price( 'min', true );
// If price is lower than 25, show first label
if ($min_price < 25) {
print '<p class="custom_text1">+ livraison gratuite à partir de 25 €</br>(Belgique, France, Pays-Bas)</p>';
}
}
/**
* FREE SHIPPING NOTICE IF PRICE ABOVE 25 €
*/
add_action( 'woocommerce_single_product_summary', 'custom_text2', 15 );
function custom_text2() {
// We retrieve the minimum of the product
$min_price = $product->get_variation_price( 'min', true );
// If price is higher than 25, show second label
if ($min_price >= 25) {
print '<p class="custom_text2">+ livraison gratuite</br>(Belgique, France, Pays-Bas)</p>';
}
}
我经验不足,行不通
我做错了什么?有人可以帮助我更好地实现这一目标吗?
需要定义 WC_Product
对象 $product
,您可以将两个函数合并为一个,用于可变产品和其他产品类型,例如:
add_action( 'woocommerce_single_product_summary', 'custom_single_product_summary_text', 15 );
function custom_single_product_summary_text() {
global $product;
$price_threshold = 25;
// Avoid 'cadeaux' product category
if( has_term( array('Cadeaux'), 'product_cat', $product->get_id() ) ) {
return;
}
if( $product->is_type('variable') ) {
$price = $product->get_variation_price( 'min', true ); // Min price
} else {
$price = wc_get_price_to_display( $product );
}
// If price is lower than 25
if ( $price < $price_threshold ) {
$message = __("+ livraison gratuite jusqu'à 25€</br>(Belgique, France, Pays-Bas)", "text_domain");
}
// If price is up to 25
else {
$message = __("+ livraison gratuite à partir de 25 € </br>(Belgique, France, Pays-Bas)", "text_domain");
}
echo '<p class="custom_text1">' . $message . '</p>';
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。