访问产品页面时 Woocommerce 自动添加到购物车

时间:2021-06-10 10:00:44

标签: wordpress woocommerce hook-woocommerce

如何在用户访问产品页面时自动将产品添加到购物车, 例如:如果用户访问 www.example.com/product/abc 产品,该功能应自动将产品添加到用户购物车

1 个答案:

答案 0 :(得分:1)

您可以使用 WC 操作挂钩 template_redirect 来检查您是否在单个产品页面上。代码将进入您的活动主题functions.php 文件。

您可以通过两种方式添加产品

使用global $woocommerce;

$quantity = 1;
$woocommerce->cart->add_to_cart( get_the_ID(), $quantity );

使用WC()

$quantity = 1;
WC()->cart->add_to_cart( $product_id, $quantity );

完整的代码如下所示。

add_action( 'template_redirect','add_product_into_cart_when_visit_product_page' );
function add_product_into_cart_when_visit_product_page(){
    if ( class_exists('WooCommerce') ){
        if( is_product() ){
            global $woocommerce;
            $quantity = 1;
            $woocommerce->cart->add_to_cart( get_the_ID(), $quantity );
        }
    } 
}

注意 - 请记住,如果您每次访问同一页面,它会在您每次访问该页面时添加产品,然后它会增加数量。因此,如果您只想添加一次,请使用以下代码。

add_action( 'template_redirect','add_product_into_cart_when_visit_product_page' );
function add_product_into_cart_when_visit_product_page(){
    if ( class_exists('WooCommerce') ){
        global $woocommerce;
        if( is_product() ){
            $product_id = get_the_ID();
            if( !is_product_already_in_cart( $product_id ) ){
                $quantity = 1;
                $woocommerce->cart->add_to_cart( $product_id, $quantity );
            }
        }
    } 
}

function is_product_already_in_cart( $product_id ){

    $product_cart_id = WC()->cart->generate_cart_id( $product_id );
    $in_cart         = WC()->cart->find_product_in_cart( $product_cart_id );
  
    if ( $in_cart ) {
        return true;
    }

    return false;

}