Merge pull request #19027 from woocommerce/update/persistent-cart-filter

Added woocommerce_persistent_cart_enabled filter
This commit is contained in:
Claudio Sanches 2018-02-20 13:57:27 -03:00 committed by GitHub
commit c80372ad5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 5 deletions

View File

@ -71,12 +71,18 @@ final class WC_Cart_Session {
$this->cart->set_coupon_discount_tax_totals( WC()->session->get( 'coupon_discount_tax_totals', array() ) ); $this->cart->set_coupon_discount_tax_totals( WC()->session->get( 'coupon_discount_tax_totals', array() ) );
$this->cart->set_removed_cart_contents( WC()->session->get( 'removed_cart_contents', array() ) ); $this->cart->set_removed_cart_contents( WC()->session->get( 'removed_cart_contents', array() ) );
if ( is_null( $cart ) && ( $saved_cart = get_user_meta( get_current_user_id(), '_woocommerce_persistent_cart_' . get_current_blog_id(), true ) ) ) { // @codingStandardsIgnoreLine if ( apply_filters( 'woocommerce_persistent_cart_enabled', true ) ) {
$saved_cart = get_user_meta( get_current_user_id(), '_woocommerce_persistent_cart_' . get_current_blog_id(), true );
} else {
$saved_cart = false;
}
if ( is_null( $cart ) && $saved_cart ) {
$cart = $saved_cart['cart']; $cart = $saved_cart['cart'];
$update_cart_session = true; $update_cart_session = true;
} elseif ( is_null( $cart ) ) { } elseif ( is_null( $cart ) ) {
$cart = array(); $cart = array();
} elseif ( is_array( $cart ) && ( $saved_cart = get_user_meta( get_current_user_id(), '_woocommerce_persistent_cart_' . get_current_blog_id(), true ) ) ) { // @codingStandardsIgnoreLine } elseif ( is_array( $cart ) && $saved_cart ) {
$cart = array_merge( $saved_cart['cart'], $cart ); $cart = array_merge( $saved_cart['cart'], $cart );
$update_cart_session = true; $update_cart_session = true;
} }
@ -184,7 +190,7 @@ final class WC_Cart_Session {
* Save the persistent cart when the cart is updated. * Save the persistent cart when the cart is updated.
*/ */
public function persistent_cart_update() { public function persistent_cart_update() {
if ( get_current_user_id() ) { if ( get_current_user_id() && apply_filters( 'woocommerce_persistent_cart_enabled', true ) ) {
update_user_meta( get_current_user_id(), '_woocommerce_persistent_cart_' . get_current_blog_id(), array( update_user_meta( get_current_user_id(), '_woocommerce_persistent_cart_' . get_current_blog_id(), array(
'cart' => $this->get_cart_for_session(), 'cart' => $this->get_cart_for_session(),
) ); ) );
@ -195,7 +201,7 @@ final class WC_Cart_Session {
* Delete the persistent cart permanently. * Delete the persistent cart permanently.
*/ */
public function persistent_cart_destroy() { public function persistent_cart_destroy() {
if ( get_current_user_id() ) { if ( get_current_user_id() && apply_filters( 'woocommerce_persistent_cart_enabled', true ) ) {
delete_user_meta( get_current_user_id(), '_woocommerce_persistent_cart_' . get_current_blog_id() ); delete_user_meta( get_current_user_id(), '_woocommerce_persistent_cart_' . get_current_blog_id() );
} }
} }

View File

@ -48,7 +48,13 @@ function wc_empty_cart() {
* @deprecated 2.3 * @deprecated 2.3
*/ */
function wc_load_persistent_cart( $user_login, $user ) { function wc_load_persistent_cart( $user_login, $user ) {
if ( ! $user || ! ( $saved_cart = get_user_meta( $user->ID, '_woocommerce_persistent_cart_' . get_current_blog_id(), true ) ) ) { if ( ! $user || ! apply_filters( 'woocommerce_persistent_cart_enabled', true ) ) {
return;
}
$saved_cart = get_user_meta( $user->ID, '_woocommerce_persistent_cart_' . get_current_blog_id(), true );
if ( ! $saved_cart ) {
return; return;
} }