Prevent cart hash becoming invalidated due to product/post data

This commit is contained in:
Mike Jolley 2015-03-20 13:00:05 +00:00
parent 21c5513526
commit b729480838
2 changed files with 3 additions and 4 deletions

View File

@ -157,7 +157,7 @@ class WC_AJAX {
'div.widget_shopping_cart_content' => '<div class="widget_shopping_cart_content">' . $mini_cart . '</div>' 'div.widget_shopping_cart_content' => '<div class="widget_shopping_cart_content">' . $mini_cart . '</div>'
) )
), ),
'cart_hash' => apply_filters( 'woocommerce_add_to_cart_hash', WC()->cart->get_cart() ? md5( json_encode( WC()->cart->get_cart() ) ) : '', WC()->cart->get_cart() ) 'cart_hash' => apply_filters( 'woocommerce_add_to_cart_hash', WC()->cart->get_cart_for_session() ? md5( json_encode( WC()->cart->get_cart_for_session() ) ) : '', WC()->cart->get_cart_for_session() )
); );
wp_send_json( $data ); wp_send_json( $data );

View File

@ -186,7 +186,7 @@ class WC_Cart {
private function set_cart_cookies( $set = true ) { private function set_cart_cookies( $set = true ) {
if ( $set ) { if ( $set ) {
wc_setcookie( 'woocommerce_items_in_cart', 1 ); wc_setcookie( 'woocommerce_items_in_cart', 1 );
wc_setcookie( 'woocommerce_cart_hash', md5( json_encode( $this->get_cart() ) ) ); wc_setcookie( 'woocommerce_cart_hash', md5( json_encode( $this->get_cart_for_session() ) ) );
} elseif ( isset( $_COOKIE['woocommerce_items_in_cart'] ) ) { } elseif ( isset( $_COOKIE['woocommerce_items_in_cart'] ) ) {
wc_setcookie( 'woocommerce_items_in_cart', 0, time() - HOUR_IN_SECONDS ); wc_setcookie( 'woocommerce_items_in_cart', 0, time() - HOUR_IN_SECONDS );
wc_setcookie( 'woocommerce_cart_hash', '', time() - HOUR_IN_SECONDS ); wc_setcookie( 'woocommerce_cart_hash', '', time() - HOUR_IN_SECONDS );
@ -691,8 +691,7 @@ class WC_Cart {
* *
* @return array contents of the cart * @return array contents of the cart
*/ */
private function get_cart_for_session() { public function get_cart_for_session() {
$cart_session = array(); $cart_session = array();
if ( $this->get_cart() ) { if ( $this->get_cart() ) {