WC_Abstract_Legacy_Product::__get()publicWC 1.0

Magic __get method for backwards compatibility. Maps legacy vars to new getters.

Метод класса: WC_Abstract_Legacy_Product{}

Хуков нет.

Возвращает

Разное.

Использование

$WC_Abstract_Legacy_Product = new WC_Abstract_Legacy_Product();
$WC_Abstract_Legacy_Product->__get( $key );
$key(строка) (обязательный)
Key name.

Код WC_Abstract_Legacy_Product::__get() WC 8.7.0

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; // These were deprecated in 2.2 and simply returned true in 2.6.x.
			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;
}