使用WooCommerce,我使用WC Vendors Pro插件+ Rehub主题+拍卖插件(由wp giene)+ Simple Auctions插件(由WC供应商提供)。
如何防止作者在WooCommerce中购买和竞标自己的产品?
我不希望帖子作者对他们发布的产品进行投标,以防止价格上涨(这是不正确的)。
从哪里开始,任何想法?
由于
答案 0 :(得分:0)
我想你的作者和#34; (供应商)具有自定义角色(或某些特定功能)。因此,您可以定位用户角色"发布作者" (或其具体功能之一)在结帐页面上检查和删除此用户角色的购物车项目。
以下是代码:
add_action( 'woocommerce_before_checkout_form', 'checking_allowed_cart_items_on_checkout', 100, 1);
function checking_allowed_cart_items_on_checkout() {
// Allow only "administrator" and "customer" user roles to buy all products
if( ! current_user_can('administrator') || ! current_user_can('customer') ){
// Ititializing variables
$found = false;
$cart_object = WC()->cart;
$current_user_id = get_current_user_id();
// Checking cart items
foreach($cart_object->get_cart() as $cart_item_key => $cart_item){
// get the WC_Product object and the product ID
$product = $cart_item['data'];
$product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;
// Get the product post object to get the post author
$post_obj = get_post( $product_id );
$post_author = $post_obj->post_author;
if( $post_author == $current_user_id ){
// removing the cart item
$cart_object->remove_cart_item( $cart_item_key );
$found = true; // set to true if a product of this author is found
}
}
// Display a custom message in checkout page when items are removed
if( $found ){
// Display an error message
wc_add_notice( __( 'Items removed - As a Vendor, you are not allowed to buy your own products.' ), 'error' );
}
}
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
此代码经过测试并有效。