Trying to add a filter when a customer adds a product to the cart, to allow it or not. We just need to compare one attribute of the Woocommerce products. If cart is empty : Add to cart ok If cart has 1 or more items : check Attribute XXX value of products If Attribute value is the same : Add to cart ok If Attribute value is different : Add to cart denied and message will display
I have this code so far, but it doesn't work well at all, and I'm unsure why...
// Check Products added to cart for same vendor
function so_validate_add_cart_item( $passed, $product_id ) {
global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values)
{
$_product = wc_get_product( $values['data']->get_id());
$prod1_vendeur[] = $_product->get_attribute( 'pa_vendeur' );
}
$newproduct = wc_get_product( $product_id );
$prod2_vendeur = $newproduct->get_attribute( 'pa_vendeur' );
if (isset($prod1_vendeur ))
{
if ( $prod1_vendeur[0] != $prod2_vendeur )
{
$passed = false;
wc_add_notice( 'Error message' , 'notice' );
}
}
return $passed;
}
add_filter( 'woocommerce_add_to_cart_validation', 'so_validate_add_cart_item', 10, 5 );```
Any help is more than appreciated.
source https://stackoverflow.com/questions/68154137/woocommerce-add-filter-when-add-to-cart
Comments
Post a Comment