Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
woocommerce
/
includes
/
legacy
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php if (!defined('ABSPATH')) { exit; } abstract class WC_Abstract_Legacy_Product extends WC_Data { public function __isset($key) { $valid = array('id', 'product_attributes', 'visibility', 'sale_price_dates_from', 'sale_price_dates_to', 'post', 'download_type', 'product_image_gallery', 'variation_shipping_class', 'shipping_class', 'total_stock', 'crosssell_ids', 'parent'); if ($this->is_type('variation')) { $valid = array_merge($valid, array('variation_id', 'variation_data', 'variation_has_stock', 'variation_shipping_class_id', 'variation_has_sku', 'variation_has_length', 'variation_has_width', 'variation_has_height', 'variation_has_weight', 'variation_has_tax_class', 'variation_has_downloadable_files')); } return in_array($key, array_merge($valid, array_keys($this->data))) || metadata_exists('post', $this->get_id(), '_' . $key) || metadata_exists('post', $this->get_parent_id(), '_' . $key); } public function __get($key) { if ('post_type' === $key) { return $this->post_type; } wc_doing_it_wrong($key, __('Product properties should not be accessed directly.', 'woocommerce'), '3.0'); switch ($key) { case 'id': $value = $this->is_type('variation') ? $this->get_parent_id() : $this->get_id(); break; case 'product_type': $value = $this->get_type(); break; case 'product_attributes': $value = isset($this->data['attributes']) ? $this->data['attributes'] : ''; break; case 'visibility': $value = $this->get_catalog_visibility(); break; case 'sale_price_dates_from': return $this->get_date_on_sale_from() ? $this->get_date_on_sale_from()->getTimestamp() : ''; break; case 'sale_price_dates_to': return $this->get_date_on_sale_to() ? $this->get_date_on_sale_to()->getTimestamp() : ''; break; case 'post': $value = get_post($this->get_id()); break; case 'download_type': return 'standard'; break; case 'product_image_gallery': $value = $this->get_gallery_image_ids(); break; case 'variation_shipping_class': case 'shipping_class': $value = $this->get_shipping_class(); break; case 'total_stock': $value = $this->get_total_stock(); break; case 'downloadable': case 'virtual': case 'manage_stock': case 'featured': case 'sold_individually': $value = $this->{"get_{$key}"}() ? 'yes' : 'no'; break; case 'crosssell_ids': $value = $this->get_cross_sell_ids(); break; case 'upsell_ids': $value = $this->get_upsell_ids(); break; case 'parent': $value = wc_get_product($this->get_parent_id()); break; case 'variation_id': $value = $this->is_type('variation') ? $this->get_id() : ''; break; case 'variation_data': $value = $this->is_type('variation') ? wc_get_product_variation_attributes($this->get_id()) : ''; break; case 'variation_has_stock': $value = $this->is_type('variation') ? $this->managing_stock() : ''; break; case 'variation_shipping_class_id': $value = $this->is_type('variation') ? $this->get_shipping_class_id() : ''; break; case 'variation_has_sku': case 'variation_has_length': case 'variation_has_width': case 'variation_has_height': case 'variation_has_weight': case 'variation_has_tax_class': case 'variation_has_downloadable_files': $value = true; break; default: if (in_array($key, array_keys($this->data))) { $value = $this->{"get_{$key}"}(); } else { $value = get_post_meta($this->id, '_' . $key, true); } break; } return $value; } public function get_variation_default_attributes() { wc_deprecated_function('WC_Product_Variable::get_variation_default_attributes', '3.0', 'WC_Product::get_default_attributes'); return apply_filters('woocommerce_product_default_attributes', $this->get_default_attributes(), $this); } public function get_gallery_attachment_ids() { wc_deprecated_function('WC_Product::get_gallery_attachment_ids', '3.0', 'WC_Product::get_gallery_image_ids'); return $this->get_gallery_image_ids(); } public function set_stock($amount = null, $mode = 'set') { wc_deprecated_function('WC_Product::set_stock', '3.0', 'wc_update_product_stock'); return wc_update_product_stock($this, $amount, $mode); } public function reduce_stock($amount = 1) { wc_deprecated_function('WC_Product::reduce_stock', '3.0', 'wc_update_product_stock'); return wc_update_product_stock($this, $amount, 'decrease'); } public function increase_stock($amount = 1) { wc_deprecated_function('WC_Product::increase_stock', '3.0', 'wc_update_product_stock'); return wc_update_product_stock($this, $amount, 'increase'); } public function check_stock_status() { wc_deprecated_function('WC_Product::check_stock_status', '3.0'); } public function get_related($limit = 5) { wc_deprecated_function('WC_Product::get_related', '3.0', 'wc_get_related_products'); return wc_get_related_products($this->get_id(), $limit); } protected function get_related_terms($term) { wc_deprecated_function('WC_Product::get_related_terms', '3.0', 'wc_get_product_term_ids'); return array_merge(array(0), wc_get_product_term_ids($this->get_id(), $term)); } protected function build_related_query($cats_array, $tags_array, $exclude_ids, $limit) { wc_deprecated_function('WC_Product::build_related_query', '3.0', 'Product Data Store get_related_products_query'); $data_store = WC_Data_Store::load('product'); return $data_store->get_related_products_query($cats_array, $tags_array, $exclude_ids, $limit); } public function get_child($child_id) { wc_deprecated_function('WC_Product::get_child', '3.0', 'wc_get_product'); return wc_get_product($child_id); } public function get_price_html_from_text() { wc_deprecated_function('WC_Product::get_price_html_from_text', '3.0', 'wc_get_price_html_from_text'); return wc_get_price_html_from_text(); } public function get_price_html_from_to($from, $to) { wc_deprecated_function('WC_Product::get_price_html_from_to', '3.0', 'wc_format_sale_price'); return apply_filters('woocommerce_get_price_html_from_to', wc_format_sale_price($from, $to), $from, $to, $this); } public function list_attributes() { wc_deprecated_function('WC_Product::list_attributes', '3.0', 'wc_display_product_attributes'); wc_display_product_attributes($this); } public function get_price_including_tax($qty = 1, $price = '') { wc_deprecated_function('WC_Product::get_price_including_tax', '3.0', 'wc_get_price_including_tax'); return wc_get_price_including_tax($this, array('qty' => $qty, 'price' => $price)); } public function get_display_price($price = '', $qty = 1) { wc_deprecated_function('WC_Product::get_display_price', '3.0', 'wc_get_price_to_display'); return wc_get_price_to_display($this, array('qty' => $qty, 'price' => $price)); } public function get_price_excluding_tax($qty = 1, $price = '') { wc_deprecated_function('WC_Product::get_price_excluding_tax', '3.0', 'wc_get_price_excluding_tax'); return wc_get_price_excluding_tax($this, array('qty' => $qty, 'price' => $price)); } public function adjust_price($price) { wc_deprecated_function('WC_Product::adjust_price', '3.0', 'WC_Product::set_price / WC_Product::get_price'); $this->data['price'] = $this->data['price'] + $price; } public function get_categories($sep = ', ', $before = '', $after = '') { wc_deprecated_function('WC_Product::get_categories', '3.0', 'wc_get_product_category_list'); return wc_get_product_category_list($this->get_id(), $sep, $before, $after); } public function get_tags($sep = ', ', $before = '', $after = '') { wc_deprecated_function('WC_Product::get_tags', '3.0', 'wc_get_product_tag_list'); return wc_get_product_tag_list($this->get_id(), $sep, $before, $after); } public function get_post_data() { wc_deprecated_function('WC_Product::get_post_data', '3.0', 'get_post'); if ($this->is_type('variation')) { $post_data = get_post($this->get_parent_id()); } else { $post_data = get_post($this->get_id()); } return $post_data; } public function get_parent() { wc_deprecated_function('WC_Product::get_parent', '3.0', 'WC_Product::get_parent_id'); return apply_filters('woocommerce_product_parent', absint($this->get_post_data()->post_parent), $this); } public function get_upsells() { wc_deprecated_function('WC_Product::get_upsells', '3.0', 'WC_Product::get_upsell_ids'); return apply_filters('woocommerce_product_upsell_ids', $this->get_upsell_ids(), $this); } public function get_cross_sells() { wc_deprecated_function('WC_Product::get_cross_sells', '3.0', 'WC_Product::get_cross_sell_ids'); return apply_filters('woocommerce_product_crosssell_ids', $this->get_cross_sell_ids(), $this); } public function has_default_attributes() { wc_deprecated_function('WC_Product_Variable::has_default_attributes', '3.0', 'a check against WC_Product::get_default_attributes directly'); if (!$this->get_default_attributes()) { return true; } return false; } public function get_variation_id() { wc_deprecated_function('WC_Product::get_variation_id', '3.0', 'WC_Product::get_id(). It will always be the variation ID if this is a variation.'); return $this->get_id(); } public function get_variation_description() { wc_deprecated_function('WC_Product::get_variation_description', '3.0', 'WC_Product::get_description()'); return $this->get_description(); } public function has_all_attributes_set() { wc_deprecated_function('WC_Product::has_all_attributes_set', '3.0', 'an array filter on get_variation_attributes for a quick solution.'); $set = true; foreach ($this->get_variation_attributes() as $att) { if (!$att) { $set = false; break; } } return $set; } public function parent_is_visible() { wc_deprecated_function('WC_Product::parent_is_visible', '3.0'); return $this->is_visible(); } public function get_total_stock() { wc_deprecated_function('WC_Product::get_total_stock', '3.0', 'get_stock_quantity on each child. Beware of performance issues in doing so.'); if (sizeof($this->get_children()) > 0) { $total_stock = max(0, $this->get_stock_quantity()); foreach ($this->get_children() as $child_id) { if ('yes' === get_post_meta($child_id, '_manage_stock', true)) { $stock = get_post_meta($child_id, '_stock', true); $total_stock += max(0, wc_stock_amount($stock)); } } } else { $total_stock = $this->get_stock_quantity(); } return wc_stock_amount($total_stock); } public function get_formatted_variation_attributes($flat = false) { wc_deprecated_function('WC_Product::get_formatted_variation_attributes', '3.0', 'wc_get_formatted_variation'); return wc_get_formatted_variation($this, $flat); } public function variable_product_sync($product_id = 0) { wc_deprecated_function('WC_Product::variable_product_sync', '3.0'); if (empty($product_id)) { $product_id = $this->get_id(); } if (is_callable(array(__CLASS__, 'sync'))) { self::sync($product_id); } } public static function sync_attributes($product, $children = false) { if (!is_a($product, 'WC_Product')) { $product = wc_get_product($product); } if (version_compare(get_post_meta($product->get_id(), '_product_version', true), '2.4.0', '<')) { $parent_attributes = array_filter((array) get_post_meta($product->get_id(), '_product_attributes', true)); if (!$children) { $children = $product->get_children('edit'); } foreach ($children as $child_id) { $all_meta = get_post_meta($child_id); foreach ($all_meta as $name => $value) { if (0 !== strpos($name, 'attribute_')) { continue; } if (sanitize_title($value[0]) === $value[0]) { foreach ($parent_attributes as $attribute) { if ('attribute_' . sanitize_title($attribute['name']) !== $name) { continue; } $text_attributes = wc_get_text_attributes($attribute['value']); foreach ($text_attributes as $text_attribute) { if (sanitize_title($text_attribute) === $value[0]) { update_post_meta($child_id, $name, $text_attribute); break; } } } } } } } } public function get_matching_variation($match_attributes = array()) { wc_deprecated_function('WC_Product::get_matching_variation', '3.0', 'Product data store find_matching_product_variation'); $data_store = WC_Data_Store::load('product'); return $data_store->find_matching_product_variation($this, $match_attributes); } public function enable_dimensions_display() { wc_deprecated_function('WC_Product::enable_dimensions_display', '3.0'); return apply_filters('wc_product_enable_dimensions_display', true) && ($this->has_dimensions() || $this->has_weight() || $this->child_has_weight() || $this->child_has_dimensions()); } public function get_rating_html($rating = null) { wc_deprecated_function('WC_Product::get_rating_html', '3.0', 'wc_get_rating_html'); return wc_get_rating_html($rating); } public static function sync_average_rating($post_id) { wc_deprecated_function('WC_Product::sync_average_rating', '3.0', 'WC_Comments::get_average_rating_for_product or leave to CRUD.'); self::sync_rating_count($post_id); $average = WC_Comments::get_average_rating_for_product(wc_get_product($post_id)); update_post_meta($post_id, '_wc_average_rating', $average); } public static function sync_rating_count($post_id) { wc_deprecated_function('WC_Product::sync_rating_count', '3.0', 'WC_Comments::get_rating_counts_for_product or leave to CRUD.'); $counts = WC_Comments::get_rating_counts_for_product(wc_get_product($post_id)); update_post_meta($post_id, '_wc_rating_count', $counts); } public function get_files() { wc_deprecated_function('WC_Product::get_files', '3.0', 'WC_Product::get_downloads'); return $this->get_downloads(); } public function grouped_product_sync() { wc_deprecated_function('WC_Product::grouped_product_sync', '3.0'); } }