WooCommerce多供应商市场从产品id获取供应商id

WooCommerce多供应商市场从产品id获取供应商id,woocommerce,vendor,Woocommerce,Vendor,我正在WoodPress多供应商网站中使用WooCommerce多供应商市场插件。我想限制一个用户,以便他们只能在购物车中添加一个供应商的产品。我正在编写一个自定义函数来获取供应商id 我试图使用get\u wcfm\u product\u vendors功能,但它不起作用;我认为这可能得不到支持。我一直在寻找其他可能的解决办法,但我找不到任何办法。是否有其他方法可用于获取产品的供应商id?您可以尝试WCFM单一供应商签出功能,将此代码添加到您的子主题: add_action( 'w

我正在WoodPress多供应商网站中使用WooCommerce多供应商市场插件。我想限制一个用户,以便他们只能在购物车中添加一个供应商的产品。我正在编写一个自定义函数来获取供应商id


我试图使用
get\u wcfm\u product\u vendors
功能,但它不起作用;我认为这可能得不到支持。我一直在寻找其他可能的解决办法,但我找不到任何办法。是否有其他方法可用于获取产品的供应商id?

您可以尝试WCFM单一供应商签出功能,将此代码添加到您的子主题:



    add_action( 'woocommerce_add_to_cart_validation', function( $is_allow, $product_id, $quantity ) {
    $product = get_post( $product_id );
    $product_author = $product->post_author;
    //Iterating through each cart item
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
    $cart_product_id = $cart_item['product_id'];
    $cart_product = get_post( $cart_product_id );
    $cart_product_author = $cart_product->post_author;
    if( $cart_product_author != $product_author ) {
    $is_allow = false;
    break;
    }
    }
    if( !$is_allow ){
    // We display an error message
    wc_clear_notices();
    wc_add_notice( __( "Well, you already have some item in your cart. First checkout with those and then purchase other items!", "wcfm" ), 'error' );
    }
    return $is_allow;
    }, 50, 3 );

添加操作('woocommerce\u add\u to\u cart\u validation',函数($is\u allow,$product\u id,$quantity){
$product=get\U post($product\U id);
$product\u author=$product->post\u author;
//遍历每个购物车项目
foreach(WC()->cart->get_cart()作为$cart\u item\u key=>$cart\u item){
$cart_product_id=$cart_item['product_id'];
$cart\u product=get\u post($cart\u product\u id);
$cart\u product\u author=$cart\u product->post\u author;
if($cart\u product\u author!=$product\u author){
$is_allow=false;
打破
}
}
如果(!$是允许的){
//我们将显示一条错误消息
wc_清除通知();
wc_add_notice(uuu(“好吧,您的购物车中已经有一些商品了。先用这些商品结账,然后再购买其他商品!”,“wcfm”),“error”);
}
返回$是允许的;
}, 50, 3 );

您可以尝试WCFM单一供应商结账功能,将此代码添加到您的子主题:



    add_action( 'woocommerce_add_to_cart_validation', function( $is_allow, $product_id, $quantity ) {
    $product = get_post( $product_id );
    $product_author = $product->post_author;
    //Iterating through each cart item
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
    $cart_product_id = $cart_item['product_id'];
    $cart_product = get_post( $cart_product_id );
    $cart_product_author = $cart_product->post_author;
    if( $cart_product_author != $product_author ) {
    $is_allow = false;
    break;
    }
    }
    if( !$is_allow ){
    // We display an error message
    wc_clear_notices();
    wc_add_notice( __( "Well, you already have some item in your cart. First checkout with those and then purchase other items!", "wcfm" ), 'error' );
    }
    return $is_allow;
    }, 50, 3 );

添加操作('woocommerce\u add\u to\u cart\u validation',函数($is\u allow,$product\u id,$quantity){
$product=get\U post($product\U id);
$product\u author=$product->post\u author;
//遍历每个购物车项目
foreach(WC()->cart->get_cart()作为$cart\u item\u key=>$cart\u item){
$cart_product_id=$cart_item['product_id'];
$cart\u product=get\u post($cart\u product\u id);
$cart\u product\u author=$cart\u product->post\u author;
if($cart\u product\u author!=$product\u author){
$is_allow=false;
打破
}
}
如果(!$是允许的){
//我们将显示一条错误消息
wc_清除通知();
wc_add_notice(uuu(“好吧,您的购物车中已经有一些商品了。先用这些商品结账,然后再购买其他商品!”,“wcfm”),“error”);
}
返回$是允许的;
}, 50, 3 );

我已经重新格式化了您的问题,使其更具可读性和清晰性;你仍然需要为你的问题添加上下文。请为你的问题提供一些源代码。我已经重新格式化了你的问题,使其更具可读性和清晰性;你仍然需要为你的问题添加上下文。请为您的问题提供一些源代码。