很长一段时间以来,我一直想发布本指南。作为一名 WooCommerce 开发自由职业者,我每天都会重复许多让我浪费时间的操作……其中之一确实是“如果我有 $product 变量/对象,如何获得____?“。
例如,“如何获取产品 SKU ”?或者“我怎样才能得到产品的简短描述”?或者可能是产品库存水平、运输等级、税收等级、价格、正常价格、销售价格等等……希望这篇文章可以为您节省时间。
当然,并非总是可以访问 $product 变量(例如,我在谈论 WooCommerce 挂钩),因此您还需要了解您的案例场景并查看是否可以在另一个中“获取”该 $product 对象大大地。
例如,您可能知道 $product_id。在这种情况下,您必须找到一种“从 $product_id 获取 $product 对象”的方法——您可以在下面找到这个示例。
其他示例可能是订单或购物车页面。再一次,在这里您实际上没有可用的 $product,因此您必须遍历订单/购物车项目并“获取”它。之后,您可以计算并从 $product 中获取您需要的任何信息。
1. 您可以访问 $product 变量
钩子(do_action 和 apply_filters)使用传递给函数的附加参数。如果他们允许您使用“$product”对象,那么您就在做生意。或者,您可以在函数中声明“全局 $product”。
在这两种情况下,以下是获取所有产品信息的方法:
Get Product ID $product->get_id(); // Get Product General Info $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() ); // Get Product Prices $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(); // Get Product Tax, Shipping & Stock $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(); // Get Product Dimensions $product->get_weight(); $product->get_length(); $product->get_width(); $product->get_height(); $product->get_dimensions(); // Get Linked Products $product->get_upsell_ids(); $product->get_cross_sell_ids(); $product->get_parent_id(); // Get Product Variations and Attributes $product->get_children(); // get variations $product->get_attributes(); $product->get_default_attributes(); $product->get_attribute( 'attributeid' ); //get specific attribute value // Get Product Taxonomies $product->get_categories(); $product->get_category_ids(); $product->get_tag_ids(); // Get Product Downloads $product->get_downloads(); $product->get_download_expiry(); $product->get_downloadable(); $product->get_download_limit(); // Get Product Images $product->get_image_id(); $product->get_image(); $product->get_gallery_image_ids(); // Get Product Reviews $product->get_reviews_allowed(); $product->get_rating_counts(); $product->get_average_rating(); $product->get_review_count();
2. 您可以访问 $product_id
如果您有权访问产品 ID(同样,通常 do_action 或 apply_filters 将使您能够做到这一点),您必须首先获取产品对象。然后,做与上面完全相同的事情。
// Get $product object from product ID
$product = wc_get_product( $product_id );
// Now you have access to (see above)…
$product->get_type();
$product->get_name();
// etc.
// etc.
3. 您可以访问 Order 对象或 Order ID
如何获取订单中的产品信息?在这种情况下,您将需要遍历订单中存在的所有项目,然后应用上述规则。
// Get $product object from $order / $order_id
$order = wc_get_order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
$product = $item->get_product();
// Now you have access to (see above)…
$product->get_type();
$product->get_name();
// etc.
// etc.
}
4. 您可以访问 Cart 对象
如何获取购物车内的产品信息?在这种情况下,您需要再次遍历购物车中的所有商品,然后应用上述规则。
// Get $product object from Cart object
$cart = WC()->cart->get_cart();
foreach( $cart as $cart_item_key => $cart_item ){
$product = $cart_item[‘data’];
// Now you have access to (see above)…
$product->get_type();
$product->get_name();
// etc.
// etc.
}
5. 你可以访问 $post 对象
在某些情况下(例如后端),您只能访问 $post。那么,我们如何从 $post 中“计算”出 $product 呢?十分简单:
// Get $product object from $post object
$product = wc_get_product( $post );
// Now you have access to (see above)…
$product->get_type();
$product->get_name();
// etc.
// etc.
评论0