+ 收藏我们

网站模板

网站模板搜索
404模板 营销型模板 外贸网站模板 单页模板 双语模板 标签大全
电话:18630701785
首页 > 站长学院 > 以编程的方式实现 WooCommerce 赠品功能 >

以编程的方式实现 WooCommerce 赠品功能

时间:2024-07-22 10:58:40

买 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。

不只是简单的赠品功能,基于本文中的代码,我们还可以实现简单的商品捆绑包功能,具体的代码就不放在这里了,有需要的朋友可以自己尝试一下。

有问题可以加入网站技术QQ群一起交流学习

本站会员学习、解决问题QQ群(691961965)

客服微信号:lpf010888

Title