woogc/get_cart_from_session/validate_hash
Name: woogc/get_cart_from_session/validate_hash
Type: Filter
Arguments: $force_validation, $values
When reconstructing the cart from session data, WooCommerce checks each of the products for validation. That includes existence, quantity, purchaseability, data hash. It happens, if a plugin implements a custom product type, if not active/available for a specific shop, the WooCommerce removes it from the cart. This is caused by a data hash that does not match anymore.
This filter can be used to force hash validity for specific products in the cart.
For example, if using the WooCommerce Bookings plugin on a shop, when checking the cart on other sites in the network, invalidates the item. To prevent that, while keeping the plugin active just on one site, the following code can be used:
add_filter ( 'woogc/get_cart_from_session/validate_hash', '__woogc_get_cart_from_session_validate_hash', 10, 2 ); function __woogc_get_cart_from_session_validate_hash( $force_validation, $values ) { //check if the current product is a bookable product if ( metadata_exists ( 'post', $values['product_id'], '_wc_booking_availability' ) ) $force_validation = TRUE; return $force_validation; }
The code should be placed inside a php file on wp-content/mu-plugins folder.