Objekt $product – čo všetko ponúka

Obtiažnosť:
Začiatočník
Pokročilý
Skúsený
Expert

Ak pracujete s WooCommerce a potrebujete niektoré úpravy/zmeny pri zobrazení produktov, potrebujete získať informácie o produkte ako sú SKU, cena, stav skladu, ID produktu… Tieto informácie vieme získať z objektu $product.

Ako získať objekt $product?

Jednou možnosťou je použiť už existujúci objekt z globálnej premennej $product, druhá možnosť je ho získať:

# Získanie objektu z globálnej premennej $product, napríklad v cyklu obchodu

function viking_stock_status_product_loop() {
  // sprístupnenie globálnej premennej $product
  global $product;
  
  if ( $product->is_in_stock() ) {
    echo '<div class="stock in-stock" >' . __( 'In stock', 'viking' ) . '</div>';
  } else {
    echo '<div class="stock out-of-stock" >' . __( 'Out of stock', 'viking' ) . '</div>';
  }
}

add_action( 'woocommerce_after_shop_loop_item_title', 'viking_stock_status_product_loop' );

# Získanie objektu $product z $product_id

$product_id je dostupný v niektorých hookoch a filtroch

// získanie objektu $product z ID produktu
$product = wc_get_product( $product_id );

Tu možno stojí za zmineku wc_get_product()

# Získanie objektu $product v objednávke

Získanie objektu $product v objednávke nieje až tak priamočiare, ale nie je to ani nič ťažké:

// získanie objektu order z premennej $order_id
$order = wc_get_order( $order_id );
// získanie všetkých produktov z objektu order
$items = $order->get_items();

// cyklus cez všetky položky v objednávke
foreach ( $items as $item ) {
  // získanie objektu $product
  $product = $item->get_product();
  
  ...
}

Funkcia na získanie objektu order wc_get_order(), metóda na získanie produktov z objednávky get_items(), získanie objektu produktu z položiek objednávky get_product().

# Získanie objektu $product v košíku

Získanie objektu $product v košíku je tiež komplkovanejšie, ale nič neriešiteľné.

// vráti obsah košíku
$cart = WC()->cart->get_cart();

// cyklus pre získanie objektu product
foreach( $cart as $cart_item_key => $cart_item ) {
  // získanie objektu $product
  $product = $cart_item['data'];
  
    ...
}

Objekt $cart získame pomocou WC()->cart (WC()vráti hlavnú inštanciu WooCommerce a metóda cart vráti objekt $cart). Takto môžme získať objekt $cart na ktorejkoľvek stránke WooCommerce – frontend. get_cart()už vráti obsah košíka, ktorý si následne môžme pomocou php funkcie foreach()rozobrať na jednotlivé objekty $product.

# Získanie objektu $product v administrácii

V niektorých prípadoch nemáme prístup k objektu $product priamo, ale máme prístup k objektu $post (napríklad v administrácii).

// získanie objektu $product z objektu $post
$product = wc_get_product( $post );

# Objekt $produkt a jeho metódy

// Získanie ID produktu
$product->get_id();
  
// Hlavné informácie o produkte
$product->get_type();
$product->get_name();
$product->get_slug();
$product->get_date_created();
$product->get_date_modified();
$product->get_status();
$product->get_featured();
$product->get_catalog_visibility();
$product->get_description();
$product->get_short_description();
$product->get_sku();
$product->get_menu_order();
$product->get_virtual();
get_permalink( $product->get_id() );
  
// Získanie cien produktu
$product->get_price();
$product->get_regular_price();
$product->get_sale_price();
$product->get_date_on_sale_from();
$product->get_date_on_sale_to();
$product->get_total_sales();
$product->get_price_html();
  
// Získanie Dane, Dopravy a Sklad
$product->get_tax_status();
$product->get_tax_class();
$product->get_manage_stock();
$product->get_stock_quantity();
$product->get_stock_status();
$product->get_backorders();
$product->get_sold_individually();
$product->get_purchase_note();
$product->get_shipping_class_id();
  
// Získanie rozmerov a výhy produktu
$product->get_weight();
$product->get_length();
$product->get_width();
$product->get_height();
$product->get_dimensions();
  
// Získanie prepojených produktov
$product->get_upsell_ids();
$product->get_cross_sell_ids();
$product->get_parent_id();
  
// Získanie variantov a Atribútov produktu
$product->get_children(); // získanie variant
$product->get_attributes();
$product->get_default_attributes();
$product->get_attribute( 'attributeid' ); // získanie špecifického atribútu
  
// Získanie tazonómii produktu
$product->get_categories();
$product->get_category_ids();
$product->get_tag_ids();
  
// Získanie Download produktu
$product->get_downloads();
$product->get_download_expiry();
$product->get_downloadable();
$product->get_download_limit();
  
// Získanie obrázkov produktu
$product->get_image_id();
$product->get_image();
$product->get_gallery_image_ids();
  
// Získanie hodnotení produktu
$product->get_reviews_allowed();
$product->get_rating_counts();
$product->get_average_rating();
$product->get_review_count();

Kredit ide pre: https://www.businessbloomer.com

0 0 votes
Hodnotenie článku
Autor
Navigácia
Odoberať
Upozorniť na
guest
0 Komentáre
Inline Feedbacks
View all comments