Php 商业销售价格函数

Php 商业销售价格函数,php,function,woocommerce,wordpress,Php,Function,Woocommerce,Wordpress,我正在使用Woocommerce在Wordpress网站上进行销售/促销活动 在后端管理区域,我为一些促销产品添加了常规价格和销售价格。完成此操作后,woocommerce会立即在购物车中收取销售价格 产品A——正常价格:50美元销售价格:40美元。 将此产品添加到购物车时,将使用销售价格并收取40美元 我需要进行的促销更为复杂 作为促销活动一部分的所有产品都将添加到销售类别中,并同时提供正常价格和销售价格。但此促销活动不应立即采用销售价格。如果购物车中添加的产品超过3种,则销售价格必须仅适用于

我正在使用Woocommerce在Wordpress网站上进行销售/促销活动

在后端管理区域,我为一些促销产品添加了常规价格和销售价格。完成此操作后,woocommerce会立即在购物车中收取销售价格

产品A——正常价格:50美元销售价格:40美元。 将此产品添加到购物车时,将使用销售价格并收取40美元

我需要进行的促销更为复杂

作为促销活动一部分的所有产品都将添加到销售类别中,并同时提供正常价格和销售价格。但此促销活动不应立即采用销售价格。如果购物车中添加的产品超过3种,则销售价格必须仅适用于每种/单位,而不是常规价格

例如,按照上面的产品A,如果我的购物车中添加了1单位本产品,则应计算每单位的正常价格50美元,只有当我的购物车中有3单位或更多产品A时,才应计算每单位的销售价格40美元

我需要尝试覆盖当前的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 );

有人能帮忙吗

你考虑过吗?@helgatheviking我正在看它,但是,如果它可以通过代码来完成,我更喜欢它,因为我不需要动态定价的所有功能。