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