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 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

