Do not discount identical Products or Variations

Note: this requires the PW WooCommerce BOGO Pro version.

To prevent identical Products or Variations from triggering a BOGO, follow these steps.

Note: If you are more comfortable with editing your functions.php you can do that instead of Code Snippets.

1. Download the free Code Snippets plugin: https://wordpress.org/plugins/code-snippets/
2. Create a Snippet with the following code:

function pw_bogo_do_not_discount_identical_items( $cart_items ) {
    $cart_items_filtered = array();
    $products_in_cart = array();
    foreach ( $cart_items as $i ) {
        //
        // You can use 'variation_id' to only prevent identical Variations.
        //
        $id = $i['cart_item']['product_id'];

        if ( !in_array( $id, $products_in_cart ) ) {
            $cart_items_filtered[] = $i;
        }

        $products_in_cart[] = $id;
    }

    return $cart_items_filtered;
}
add_filter( 'pw_bogo_cart_items', 'pw_bogo_do_not_discount_identical_items' );

You can change ‘product_id’ in the code above to ‘variation_id’ to prevent identical Variations instead.

Skip to content