cache invalidation based on hooks

master
Marek Isalski 7 years ago
parent a9d5ea9123
commit 3cfbf2bce5

@ -147,10 +147,16 @@ function fulcrm_shoppingcart_theme( $existing, $type, $theme, $path ) {
); );
} }
function fulcrm_shoppingcart_invalidate_cache() { function fulcrm_shoppingcart_invalidate_cache( $cart_id = NULL ) {
if ( array_key_exists( 'fulcrm_shoppingcart_id', $_SESSION ) ) { if ( is_null( $cart_id ) ) {
$cid = 'fulcrm_shoppingcart:shoppingcart:' . $_SESSION[ 'fulcrm_shoppingcart_id' ]; if ( array_key_exists( 'fulcrm_shoppingcart_id', $_SESSION ) )
cache_clear_all( $cid, 'cache' ); $cart_id = $_SESSION[ 'fulcrm_shoppingcart_id' ];
}
if ( $cart_id === '*' ) {
cache_clear_all( $cid = 'fulcrm_shoppingcart:shoppingcart:', $bin = 'cache', $wildcard = TRUE );
} else if ( !is_null( $cart_id ) ) {
$cid = 'fulcrm_shoppingcart:shoppingcart:' . $cart_id;
cache_clear_all( $cid = $cid, $bin = 'cache' );
} }
} }
@ -894,3 +900,45 @@ function fulcrm_shoppingcart_user_logout( $account ) {
unset( $_SESSION[ 'fulcrm_shoppingcart_id' ] ); unset( $_SESSION[ 'fulcrm_shoppingcart_id' ] );
} }
} }
function fulcrm_shoppingcart_create_for_fulcrm_shoppingcart( &$vars ) {
}
function fulcrm_shoppingcart_update_for_fulcrm_shoppingcart( &$vars ) {
if ( fulcrm_apiv2_url_to_type( $data[ 'url' ] ) === 'shoppingcart' ) {
$cart_id = fulcrm_apiv2_url_to_pk( $data[ 'url' ] );
if ( $cart_id )
fulcrm_shoppingcart_invalidate_cache( $cart_id );
}
}
function fulcrm_shoppingcart_delete_for_fulcrm_shoppingcart( &$vars ) {
if ( fulcrm_apiv2_url_to_type( $data[ 'url' ] ) === 'shoppingcart' ) {
$cart_id = fulcrm_apiv2_url_to_pk( $data[ 'url' ] );
if ( $cart_id )
fulcrm_shoppingcart_invalidate_cache( $cart_id );
}
}
function fulcrm_shoppingcart_create_for_fulcrm_shoppingitem( &$vars ) {
}
function fulcrm_shoppingcart_update_for_fulcrm_shoppingitem( &$vars ) {
if ( fulcrm_apiv2_url_to_type( $data[ 'shoppingcart' ] ) === 'shoppingcart' ) {
$cart_id = fulcrm_apiv2_url_to_pk( $data[ 'shoppingcart' ] );
if ( $cart_id )
fulcrm_shoppingcart_invalidate_cache( $cart_id );
}
}
function fulcrm_shoppingcart_delete_for_fulcrm_shoppingitem( &$vars ) {
fulcrm_shoppingcart_invalidate_cache( '*' );
}
function fulcrm_shoppingcart_create_for_fulcrm_transaction( &$vars ) {
if ( fulcrm_apiv2_url_to_type( $data[ 'content_object' ] ) === 'shoppingcart' ) {
$cart_id = fulcrm_apiv2_url_to_pk( $data[ 'content_object' ] );
if ( $cart_id )
fulcrm_shoppingcart_invalidate_cache( $cart_id );
}
}

Loading…
Cancel
Save