预计阅读时间: 3 分钟

买 X 送 Y 是电商销售中很常见的一种营销方式,WooCommerce有很多插件可以实现这个功能,今天我们不用插件,直接用代码来实现这个功能。

实现WooCommerce 赠品功能的主要代码

在下面的代码中,我们使用了 woocommerce_payment_complete 这个 Hook,在用户支付成功后,即执行挂载到该 Hook 中的 wprs_add_products_to_order 函数,便利该订单中的商品,如果订单中包含 ID 为 123 这个商品,就添加ID 为 456 这个商品到订单中,并设置价格为 0,以免订单总价发生变化。


add_action('woocommerce_payment_complete', 'wprs_add_products_to_order', 9999);

/**
 * @param $order_id
 *
 * @return void
 */
function wprs_add_products_to_order($order_id)
{
    $order = wc_get_order($order_id);
    foreach ($order->get_items() as $item_id => $item) {
        $product_id = $item->get_product_id();
        if ($product_id && $product_id == 123) {
            $order->add_product(wc_get_product(456), 1, ['subtotal' => 0, 'total' => 0]);
            $order->save();
            //wc_downloadable_product_permissions( $order_id, true ); 如果需要添加下载权限,添加这段代码
            //wc_update_product_stock( wc_get_product( 456 ), 1, 'decrease' ); //如果需要减库存,添加这段代码
            break;
        }
    }
}

上面的商品 ID 123 和 456 是直接写死在代码中的,如果需要添加赠品功能的商品比较多,我们可以为商品添加自定义字段插件来动态的设置和获取这两个商品 ID。

此文章对你有帮助吗? 已有 0 人说这篇文章是有用的。