Transient names. Closes #818.
This commit is contained in:
parent
34241a384b
commit
fe800d6685
|
@ -644,7 +644,7 @@ function woocommerce_process_product_meta( $post_id, $post ) {
|
|||
update_post_meta( $post_id, '_virtual', $is_virtual );
|
||||
|
||||
// Set transient for product type
|
||||
set_transient( 'woocommerce_product_type_' . $post_id, $product_type );
|
||||
set_transient( 'wc_product_type_' . $post_id, $product_type );
|
||||
|
||||
// Sales and prices
|
||||
if ($product_type=='simple' || $product_type=='external') :
|
||||
|
|
|
@ -99,7 +99,7 @@ class WC_Product {
|
|||
foreach ($load_data as $key => $default) $this->$key = (isset($this->product_custom_fields['_' . $key][0]) && $this->product_custom_fields['_' . $key][0]!=='') ? $this->product_custom_fields['_' . $key][0] : $default;
|
||||
|
||||
// Get product type
|
||||
$transient_name = 'woocommerce_product_type_' . $this->id;
|
||||
$transient_name = 'wc_product_type_' . $this->id;
|
||||
|
||||
if ( false === ( $this->product_type = get_transient( $transient_name ) ) ) :
|
||||
$terms = wp_get_object_terms( $id, 'product_type', array('fields' => 'names') );
|
||||
|
@ -129,7 +129,7 @@ class WC_Product {
|
|||
|
||||
if (is_null($this->total_stock)) :
|
||||
|
||||
$transient_name = 'woocommerce_product_total_stock_' . $this->id;
|
||||
$transient_name = 'wc_product_total_stock_' . $this->id;
|
||||
|
||||
if ( false === ( $this->total_stock = get_transient( $transient_name ) ) ) :
|
||||
|
||||
|
@ -167,7 +167,7 @@ class WC_Product {
|
|||
|
||||
$child_post_type = ($this->is_type('variable')) ? 'product_variation' : 'product';
|
||||
|
||||
$transient_name = 'woocommerce_product_children_ids_' . $this->id;
|
||||
$transient_name = 'wc_product_children_ids_' . $this->id;
|
||||
|
||||
if ( false === ( $this->children = get_transient( $transient_name ) ) ) :
|
||||
|
||||
|
@ -665,7 +665,7 @@ class WC_Product {
|
|||
if ($location) $location = '_'.$location;
|
||||
$star_size = apply_filters('woocommerce_star_rating_size'.$location, 16);
|
||||
|
||||
if ( false === ( $average_rating = get_transient( $this->id . '_woocommerce_average_rating' ) ) ) :
|
||||
if ( false === ( $average_rating = get_transient( 'wc_average_rating_' . $this->id ) ) ) :
|
||||
|
||||
global $wpdb;
|
||||
|
||||
|
@ -692,7 +692,7 @@ class WC_Product {
|
|||
$average_rating = '';
|
||||
endif;
|
||||
|
||||
set_transient( $this->id . '_woocommerce_average_rating', $average_rating );
|
||||
set_transient( 'wc_average_rating_' . $this->id, $average_rating );
|
||||
|
||||
endif;
|
||||
|
||||
|
@ -1148,7 +1148,7 @@ class WC_Product {
|
|||
update_post_meta( $this->id, '_min_variation_sale_price', $this->min_variation_sale_price );
|
||||
update_post_meta( $this->id, '_max_variation_sale_price', $this->max_variation_sale_price );
|
||||
|
||||
$woocommerce->clear_product_transients( $this->id );
|
||||
if ( $this->min_variation_price !== '' ) $woocommerce->clear_product_transients( $this->id );
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -99,8 +99,8 @@ class WC_Query {
|
|||
unset($current_wp_query['paged']);
|
||||
|
||||
// Generate a transient name based on current query
|
||||
$transient_name = 'woocommerce_unfiltered_product_ids_' . sanitize_key( http_build_query($current_wp_query) );
|
||||
$transient_name = (is_search()) ? $transient_name . '_search' : $transient_name;
|
||||
$transient_name = 'wc_uf_pid_' . md5( http_build_query($current_wp_query) );
|
||||
$transient_name = (is_search()) ? $transient_name . '_s' : $transient_name;
|
||||
|
||||
if ( false === ( $unfiltered_product_ids = get_transient( $transient_name ) ) ) {
|
||||
|
||||
|
@ -209,7 +209,7 @@ class WC_Query {
|
|||
*/
|
||||
function get_hidden_product_ids() {
|
||||
|
||||
$transient_name = (is_search()) ? 'woocommerce_hidden_from_search_product_ids' : 'woocommerce_hidden_product_ids';
|
||||
$transient_name = (is_search()) ? 'wc_hidden_product_ids_search' : 'wc_hidden_product_ids';
|
||||
|
||||
if ( false === ( $hidden_product_ids = get_transient( $transient_name ) ) ) {
|
||||
|
||||
|
|
|
@ -149,6 +149,7 @@ Yes you can! Join in on our [GitHub repository](http://github.com/woothemes/wooc
|
|||
* Fix - Removed admin bar css and spacing when disabled
|
||||
* Fix - Placeholder support for non-supporting browsers
|
||||
* Tweak - e-commerce tracking - SKU and Category (thanks jdiderik)
|
||||
* Tweak - renamed transients (some generated transients were too long)
|
||||
* Localization - Made the monthly sales dashboard widget translatable (by GeertDD)
|
||||
* Localization - Updated Danish Translation (by FrederikRS)
|
||||
|
||||
|
|
|
@ -230,12 +230,12 @@ class WooCommerce_Widget_Layered_Nav extends WP_Widget {
|
|||
foreach ($terms as $term) {
|
||||
|
||||
// Get count based on current view - uses transients
|
||||
$transient_name = 'woocommerce_layered_nav_count_' . sanitize_key($taxonomy) . sanitize_key( $term->term_id );
|
||||
$transient_name = 'wc_ln_count_' . md5( sanitize_key($taxonomy) . sanitize_key( $term->term_id ) );
|
||||
|
||||
if ( false === ( $_products_in_term = get_transient( $transient_name ) ) ) {
|
||||
|
||||
$_products_in_term = get_objects_in_term( $term->term_id, $taxonomy );
|
||||
|
||||
|
||||
set_transient( $transient_name, $_products_in_term );
|
||||
}
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ class WooCommerce_Widget_On_Sale extends WP_Widget {
|
|||
$number = 15;
|
||||
|
||||
// Get products on sale
|
||||
if ( false === ( $product_ids_on_sale = get_transient( 'woocommerce_products_onsale' ) ) ) :
|
||||
if ( false === ( $product_ids_on_sale = get_transient( 'wc_products_onsale' ) ) ) :
|
||||
|
||||
$meta_query = array();
|
||||
$meta_query[] = array(
|
||||
|
@ -80,7 +80,7 @@ class WooCommerce_Widget_On_Sale extends WP_Widget {
|
|||
|
||||
$product_ids_on_sale = array_unique(array_merge(array_values($on_sale), array_keys($on_sale)));
|
||||
|
||||
set_transient( 'woocommerce_products_onsale', $product_ids_on_sale );
|
||||
set_transient( 'wc_products_onsale', $product_ids_on_sale );
|
||||
|
||||
endif;
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ class WooCommerce_Widget_Product_Categories extends WP_Widget {
|
|||
|
||||
$title = apply_filters('widget_title', empty( $instance['title'] ) ? __( 'Product Categories', 'woocommerce' ) : $instance['title'], $instance, $this->id_base);
|
||||
$c = $instance['count'] ? '1' : '0';
|
||||
$h = $instance['hierarchical'] ? '1' : '0';
|
||||
$h = $instance['hierarchical'] ? true : false;
|
||||
$s = (isset($instance['show_children_only']) && $instance['show_children_only']) ? '1' : '0';
|
||||
$d = $instance['dropdown'] ? '1' : '0';
|
||||
$o = isset($instance['orderby']) ? $instance['orderby'] : 'order';
|
||||
|
@ -83,7 +83,7 @@ class WooCommerce_Widget_Product_Categories extends WP_Widget {
|
|||
global $wp_query, $post;
|
||||
|
||||
$cat_args['title_li'] = '';
|
||||
$cat_args['hierarchical'] = 1;
|
||||
$cat_args['hierarchical'] = true;
|
||||
$cat_args['child_of'] = 0;
|
||||
$cat_args['pad_counts'] = 1;
|
||||
|
||||
|
@ -117,7 +117,7 @@ class WooCommerce_Widget_Product_Categories extends WP_Widget {
|
|||
|
||||
echo '<li class="cat-item cat-item-'.$cat->term_id;
|
||||
|
||||
if ($this->current_cat->term_id == $cat->term_id || is_tax('product_cat', $cat->slug)) echo ' current-cat';
|
||||
if ( ($this->current_cat && $this->current_cat->term_id == $cat->term_id) || is_tax('product_cat', $cat->slug) ) echo ' current-cat';
|
||||
if (
|
||||
$this->current_cat
|
||||
&& in_array( $cat->term_id, $this->cat_ancestors )
|
||||
|
@ -146,7 +146,8 @@ class WooCommerce_Widget_Product_Categories extends WP_Widget {
|
|||
echo '<ul>';
|
||||
|
||||
$cat_args['title_li'] = '';
|
||||
wp_list_categories(apply_filters('woocommerce_product_categories_widget_args', $cat_args));
|
||||
|
||||
wp_list_categories( apply_filters('woocommerce_product_categories_widget_args', $cat_args) );
|
||||
|
||||
echo '</ul>';
|
||||
}
|
||||
|
@ -158,7 +159,7 @@ class WooCommerce_Widget_Product_Categories extends WP_Widget {
|
|||
$cat_args = array();
|
||||
|
||||
$cat_args['title_li'] = '';
|
||||
$cat_args['hierarchical'] = 1;
|
||||
$cat_args['hierarchical'] = true;
|
||||
$cat_args['child_of'] = 0;
|
||||
$cat_args['pad_counts'] = 1;
|
||||
$cat_args['parent'] = $parent;
|
||||
|
@ -204,7 +205,7 @@ class WooCommerce_Widget_Product_Categories extends WP_Widget {
|
|||
$instance['title'] = strip_tags($new_instance['title']);
|
||||
$instance['orderby'] = strip_tags($new_instance['orderby']);
|
||||
$instance['count'] = !empty($new_instance['count']) ? 1 : 0;
|
||||
$instance['hierarchical'] = !empty($new_instance['hierarchical']) ? 1 : 0;
|
||||
$instance['hierarchical'] = !empty($new_instance['hierarchical']) ? true : false;
|
||||
$instance['dropdown'] = !empty($new_instance['dropdown']) ? 1 : 0;
|
||||
$instance['show_children_only'] = !empty($new_instance['show_children_only']) ? 1 : 0;
|
||||
|
||||
|
|
|
@ -1245,7 +1245,7 @@ function woocommerce_add_comment_rating($comment_id) {
|
|||
global $post;
|
||||
if (!$_POST['rating'] || $_POST['rating'] > 5 || $_POST['rating'] < 0) $_POST['rating'] = 5;
|
||||
add_comment_meta( $comment_id, 'rating', esc_attr($_POST['rating']), true );
|
||||
delete_transient( esc_attr($post->ID) . '_woocommerce_average_rating' );
|
||||
delete_transient( 'wc_average_rating_' . esc_attr($post->ID) );
|
||||
endif;
|
||||
}
|
||||
|
||||
|
|
|
@ -1322,23 +1322,31 @@ class Woocommerce {
|
|||
function clear_product_transients( $post_id = 0 ) {
|
||||
global $wpdb;
|
||||
|
||||
delete_transient('woocommerce_products_onsale');
|
||||
delete_transient('woocommerce_hidden_product_ids');
|
||||
delete_transient('woocommerce_hidden_from_search_product_ids');
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` IN ('woocommerce_products_onsale', 'woocommerce_hidden_product_ids', 'woocommerce_hidden_from_search_product_ids')");
|
||||
var_dump("CLEAR");
|
||||
|
||||
delete_transient('wc_products_onsale');
|
||||
delete_transient('wc_hidden_product_ids');
|
||||
delete_transient('wc_hidden_product_ids_search');
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` IN ('wc_products_onsale', 'wc_hidden_product_ids', 'wc_hidden_product_ids_search')");
|
||||
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_woocommerce_unfiltered_product_ids_%')");
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_woocommerce_layered_nav_count_%')");
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_wc_uf_pid_%')");
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_wc_ln_count_%')");
|
||||
|
||||
if ($post_id>0) :
|
||||
$post_id = (int) $post_id;
|
||||
delete_transient('woocommerce_product_total_stock_'.$post_id);
|
||||
delete_transient('woocommerce_product_children_ids_'.$post_id);
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_woocommerce_product_children_ids_$post_id%')");
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_woocommerce_product_total_stock_$post_id%')");
|
||||
delete_transient('wc_product_total_stock_'.$post_id);
|
||||
delete_transient('wc_product_children_ids_'.$post_id);
|
||||
delete_transient('wc_average_rating_'.$post_id);
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` IN
|
||||
(
|
||||
'_transient_wc_product_children_ids_$post_id',
|
||||
'_transient_wc_product_total_stock_$post_id',
|
||||
'_transient_wc_average_rating_$post_id'
|
||||
)");
|
||||
else :
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_woocommerce_product_children_ids_%')");
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_woocommerce_product_total_stock_%')");
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_wc_product_children_ids_%')");
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_wc_product_total_stock_%')");
|
||||
$wpdb->query("DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_wc_average_rating_%')");
|
||||
endif;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue