需要在 WooCommerce 中注册特定产品

Chr*_*ink 3 php wordpress product checkout woocommerce

在 WooCommerce 设置中要求全局注册很简单,但对于我们销售的大多数产品来说,这是没有必要的,我宁愿限制登录用户。

然而,对于一种产品,我想要求注册。

就像是

$product_id = $product->get_id();

if ($product_id !== 1024) {

  remove_action( 'woocommerce_before_checkout_registration_form', 'action_woocommerce_checkout_registration_form', 10, 1 );

}
Run Code Online (Sandbox Code Playgroud)

但事情显然没那么简单。有任何想法吗?

7uc*_*f3r 5

此答案假设启用了 WooCommerce > 设置 > 帐户和隐私 > 允许客户在没有帐户的情况下下订单

然后您可以使用以下代码,这将确保当productID's购物车中有 1 个或多个时,结账时需要注册

function filter_woocommerce_checkout_registration_required( $bool_value ) {
    // Several can be added, separated by a comma
    $product_ids = array ( 30, 813 );
    
    // Loop through cart items
    foreach ( WC()->cart->get_cart() as $cart_item ) {
        // Product ID from cart item in specific array
        if ( in_array( $cart_item['product_id'], $product_ids ) ) {
            // Registration_required
            $bool_value = true;
                    
            // Break loop
            break;
        }
    }

    return $bool_value;
}
add_filter( 'woocommerce_checkout_registration_required', 'filter_woocommerce_checkout_registration_required', 10, 1 );
Run Code Online (Sandbox Code Playgroud)