Created
November 6, 2018 05:30
-
-
Save kartikparmar/6f908567224a02ce746f7e102f76193a to your computer and use it in GitHub Desktop.
Automatically adding the product to the cart for only specific user roles.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
* Automatically adding the product to the cart for only specific user roles. | |
*/ | |
function aaptc_add_product_to_cart( $item_key, $product_id ) { | |
$product_category_id = 123; // cricket bat category id | |
$product_cats_ids = wc_get_product_term_ids( $product_id, 'product_cat' ); | |
$user = wp_get_current_user(); // This will fetch current user's role | |
$allowed_roles = array( 'booking_agent', 'perfecth' ); // These are the list of allowed user role. | |
if ( array_intersect( $allowed_roles, $user->roles ) ) { // This is the condition to add free product to cart for only specific user roles | |
if ( ! is_admin() && in_array( $product_category_id, $product_cats_ids ) ) { | |
$free_product_id = 12989; // Product Id of the free product which will get added to cart | |
$found = false; | |
//check if product already in cart | |
if ( sizeof( WC()->cart->get_cart() ) > 0 ) { | |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) { | |
$_product = $values['data']; | |
if ( $_product->get_id() == $free_product_id ) | |
$found = true; | |
} | |
// if product not found, add it | |
if ( ! $found ) | |
WC()->cart->add_to_cart( $free_product_id ); | |
} else { | |
// if no products in cart, add it | |
WC()->cart->add_to_cart( $free_product_id ); | |
} | |
} | |
} | |
} | |
add_action( 'woocommerce_add_to_cart', 'aaptc_add_product_to_cart', 10, 2 ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment