This repository has been archived on 2022-06-23. You can view files and clone it, but cannot push or open issues or pull requests.
divi/includes/builder/frontend-builder/theme-builder/WoocommerceProductVariablePlaceholderDataStoreCPT.php
2021-12-07 11:08:05 +00:00

54 lines
1.7 KiB
PHP

<?php
/**
* Register data store for ET_Theme_Builder_Woocommerce_Product_Variable_Placeholder_Data_Store_CPT
* which aims to bypass database value retrieval and simply returns default value as placeholder
*
* @since 4.0.10
*/
class ET_Theme_Builder_Woocommerce_Product_Variable_Placeholder_Data_Store_CPT extends WC_Product_Variable_Data_Store_CPT implements WC_Object_Data_Store_Interface, WC_Product_Variable_Data_Store_Interface {
/**
* Basically the original read() method with one exception: retruns default value (which is
* placeholder value) and remove all database value retrieval mechanism so any add-ons
* on TB refers to TB placeholder product data
*
* @since 4.0.10
*
* @param WC_Product $product Product object.
*/
public function read( &$product ) {
$product->set_defaults();
}
/**
* Register product type data store
*
* @since 4.0.10
* @since 4.3.3 register the store for tb-placeholder-variation product
*
* @param array $stores
*
* @return array
*/
public static function register_store( $stores ) {
$stores['product-tb-placeholder'] = 'ET_Theme_Builder_Woocommerce_Product_Variable_Placeholder_Data_Store_CPT';
// Placeholder variation store requirement is identical to placeholder variable, which is
// loading defaults as value and skipping database value retrieval; thus best keep thing
// simple and reuse it for tb-placeholder-variation
$stores['product-tb-placeholder-variation'] = 'ET_Theme_Builder_Woocommerce_Product_Variable_Placeholder_Data_Store_CPT';
return $stores;
}
}
/**
* Register product tb-placeholder's store
*
* @since 4.0.10
*/
add_filter(
'woocommerce_data_stores',
array( 'ET_Theme_Builder_Woocommerce_Product_Variable_Placeholder_Data_Store_CPT', 'register_store' )
);