WooCommerce:如何增强产品库
2022年3月30日
西部数码的云服务器介绍
2022年3月31日

WooCommerce:从 $product 对象获取产品信息(ID、SKU、$)

很长一段时间以来,我一直想发布本指南。作为一名 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.
 

卓 程
铬元素大人
喜欢电影,小说和游戏,也喜欢鼓捣主题,想做好独立站的死宅一枚

发表评论

在线客服
在线客服
热线电话
QQ客服