Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
1.2 kB
3
Indexable
Never
function filter_woocommerce_available_payment_gateways( $gateways ) {
	if (is_admin()){
		return $gateways;
	}
	if (!is_object(WC()->cart)){
		return $gateways;
	}
    // Define the vendor IDs for which COD is allowed
    $allowed_vendors = array( 1, 2, 3 ); // Replace with actual vendor IDs

    // Flag to check if a product from the allowed vendor is in the cart
    $allowed_vendor_in_cart = false;

    // Check the cart contents
    foreach ( WC()->cart->get_cart_contents() as $cart_item ) {
        // Get the product ID
        $product_id = $cart_item['product_id'];

        // Get the post_author (vendor) of the product
        $vendor_id = get_post_field( 'post_author', $product_id );

        // Check if the vendor ID is in the allowed list
        if ( in_array( $vendor_id, $allowed_vendors ) ) {
            $allowed_vendor_in_cart = true;
            break;
        }
    }

    // If no allowed vendor's product is in the cart, unset COD
    if ( !$allowed_vendor_in_cart && isset( $gateways['cod'] ) ) {
        unset( $gateways['cod'] );
    }

    return $gateways;
}

add_filter( 'woocommerce_available_payment_gateways', 'filter_woocommerce_available_payment_gateways', 10, 1 );
Leave a Comment