/** * Aelia Foundation Classes for WooCommerce. * Only allow to set a cookie once, unless its value changes. * * HOW TO USE THIS CODE * Add the code to the bottom of your theme's functions.php file, and it * will run automatically. For more information: https://www.skyverge.com/blog/add-custom-code-to-wordpress/ * * GPL DISCLAIMER * Because this code program is free of charge, there is no warranty for it, to the extent permitted by applicable law. * Except when otherwise stated in writing the copyright holders and/or other parties provide the program "as is" * without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of * merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program * is with you. should the program prove defective, you assume the cost of all necessary servicing, repair or correction. * * Need a consultation, or assistance to customise this code? Find us on Codeable: https://aelia.co/hire_us * * @param array cookie_data * @param array|null */ add_filter('wc_aelia_afc_session_set_cookie', function($cookie_data) { // The content of the static $cookies_already_set variable will be preserved // across multiple executions of the filter static $cookies_already_set = array(); // If the cookie is in the "cookies already set" list, and its value is the // same, remove the cookie data. This will prevent the AFC from setting the // value if(isset($cookies_already_set[$cookie_data['name']]) && ($cookies_already_set[$cookie_data['name']] === $cookie_data['value'])) { $cookie_data = null; } else { // If the cookie is new, or its value has changed, store it in the list and // let the AFC set it $cookies_already_set[$cookie_data['name']] = $cookie_data['value']; } return $cookie_data; }, 10);