我正在尝试使用Woocommerce定制我在Wordpress网站上运行的促销/促销。
在后端管理区域,我已将常规价格和促销价格添加到促销中的某些产品中。完成后,woocommerce立即收取购物车中的销售价格。
EG。 ProductA - 普通价格:50美元促销价:40美元。 将此产品添加到购物车时,使用并收取销售价格(40美元)。
我需要进行的促销活动更为复杂。
作为促销活动一部分的所有产品都会添加到“促销”类别中,并同时提供正常价格和促销价格。但是促销价不应立即适用。如果购买的商品中有超过3个产品可以购买,则必须按每个/单位而不是正常价格应用促销价。
EG。按照上面的ProductA,如果此产品的1个单位的添加到我的购物车,只要我的购物车中有3个或更多ProductA单价,且每个单位的促销价格为$ 40,那么每单位只需计算50美元的正常价格
我需要尝试覆盖当前的Woocommerce设置,以便仅在该产品超过3时才应用促销价。
到目前为止,我在functions.php中使用了以下代码。
function check_product_in_cart() {
//Check to see if user has product in cart
global $woocommerce;
// start of the loop that fetches the cart items
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
$terms = get_the_terms( $_product->id, 'product_cat' );
// second level loop search, in case some items have several categories
foreach ($terms as $term) {
$_categoryid = $term->term_id;
}
if ( ($_categoryid === 17) && ($_product > 3) ) {
//Apply sale price per unit
}
}
}
上面的代码应检查购物车中的每件商品,检查是否属于第17类(“促销”类别),如果是“销售类别”,请检查该产品的数量是否超过3 ,应用每单位的销售价格,否则申请正常价格。
我一直在研究这个,因为我相信我可能需要使用钩子和/或woocommerce过滤器,因为我试图在woocommerce中安全地覆盖这个功能。
我也看了这个以获得销售的产品:
$args = array(
'post_type' => 'product',
'meta_query' => array(
'relation' => 'OR',
array( // Simple products type
'key' => '_sale_price',
'value' => 0,
'compare' => '>',
'type' => 'numeric'
),
array( // Variable products type
'key' => '_min_variation_sale_price',
'value' => 0,
'compare' => '>',
'type' => 'numeric'
)
)
);
query_posts( $args );
任何人都可以帮忙。