Ad
WooCommerce Checkout Message Based For A Variable Product And A Specific Variable?
I have added a custom message that now appears below woocommerce_after_order_notes, But I just want it to be displayed for one of the variables of a product. The following code shows it only for the main product Please tell me how to change it for a variable.
add_action( 'woocommerce_after_order_notes', 'allclean_add_checkout_content', 12 );
function allclean_add_checkout_content() {
// set your products IDs here:
$product_ids = array( 91);
$bool = false;
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$item = $cart_item['data'];
if ( in_array( $item->id, $product_ids ) )
$bool = true;
}
// If the special cat is detected in one items of the cart
// It displays the message
if ($bool)
echo '<div class="checkoutdisc">This is Your custom message displayed.</div>';
}
Ad
Answer
You can check if there is any variation_id
in cart like this $cart_item['variation_id']
. try the below code.
add_action( 'woocommerce_after_order_notes', 'allclean_add_checkout_content', 12 );
function allclean_add_checkout_content() {
// set your products IDs here:
$product_ids = array( 82, 94 ); // add your both product and variation id.
$parent_ids_in_cart = false;
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$item = $cart_item['data'];
if ( in_array( $item->id, $product_ids ) ){
$parent_ids_in_cart = true;
}
}
$variation_ids_in_cart = false;
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ) {
// Collecting product variation IDs if they are in cart for this variable product
if ( $cart_item['variation_id'] > 0 && in_array( $cart_item['variation_id'], $product_ids ) ){
$variation_ids_in_cart = true;
}
}
// It displays the message
if ( $parent_ids_in_cart || $variation_ids_in_cart ){
echo '<div class="checkoutdisc">This is Your custom message displayed.</div>';
}
}
Ad
source: stackoverflow.com
Related Questions
- → How to update data attribute on Ajax complete
- → October CMS - Radio Button Ajax Click Twice in a Row Causes Content to disappear
- → Octobercms Component Unique id (Twig & Javascript)
- → Passing a JS var from AJAX response to Twig
- → Laravel {!! Form::open() !!} doesn't work within AngularJS
- → DropzoneJS & Laravel - Output form validation errors
- → Import statement and Babel
- → Uncaught TypeError: Cannot read property '__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED' of undefined
- → React-router: Passing props to children
- → ListView.DataSource looping data for React Native
- → Can't test submit handler in React component
- → React + Flux - How to avoid global variable
- → Webpack, React & Babel, not rendering DOM
Ad