Sharjeel Moin
Sharjeel Moin

Reputation: 21

How to disable Cash On Delivery for dokan vendors subscription

I am using WooCommerce Dokan (Version 3.2.6 ) multi-vendor plugin. In my website Cash on delivery and pay by card both methods are enable for users. But when any vendor purchasing a package, it is showing Cash On Delivey for that as well, due to which I have to keep track of every vendor manually whether he has paid or not.

I want to disable COD for vendors and enable for users only.

enter image description here

Upvotes: 0

Views: 280

Answers (1)

Ruvee
Ruvee

Reputation: 9107

Just came across your question and decided to add the answer for future reference!

So, for disabling the cash on delivery option only for sellers/vendors not normal users, you could use:

  • woocommerce_available_payment_gateways filter hook.

And

  • dokan_is_user_seller and dokan_get_current_user_id functions to check whether the buyer is a seller or a normal user!

Use the following code in your functions.php file:

add_filter(
    'woocommerce_available_payment_gateways', 'disabling_cod_for_sellers', 999);

function disabling_cod_for_sellers($available_payment_gateways)
{
    if (
        dokan_is_user_seller(dokan_get_current_user_id())
        &&
        isset($available_payment_gateways['cod'])
       ) 
    {
        unset($available_payment_gateways['cod']);
    }
    return $available_payment_gateways;
}

This answer has been tested on Dokan 3.3.5, Woo 5.7 and works.

Upvotes: 2

Related Questions