当前位置: 首页 > 知识库问答 >
问题:

在WooCommerce中获取未格式化的产品值

左丘照
2023-03-14

我有下面的微数据格式,并将其添加到content-single-product.phpWooCommerce模板上。下面是我试图添加的代码:

<div itemscope itemtype="http://schema.org/Product">
    <meta itemprop="name" content="Product Name">
<div itemscope itemtype="http://schema.org/Offer">
        <meta itemprop="sku" content="Product SKU">
        <meta itemprop="price" content="Product Price" />
        <meta itemprop="priceCurrency" content="Price Currency ex. INR" />
        <meta itemprop="category" content="Category Name">
        <meta itemprop="availability" content="http://schema.org/InStock" />
</div>

<div  itemscope itemtype="http://schema.org/PriceSpecification">
        <meta itemprop="minPrice" content="Special Price">
        <meta itemprop="validFrom" content="Sale Start Date">
        <meta itemprop="validThrough" content="Sale End Date">
</div>

<div  itemscope itemtype="http://schema.org/Thing">
        <meta itemprop="image" content="Product Image URL">
        <meta itemprop="description" content="Product Description">
</div>
</div>

在此中,内容为单一产品。php模板,我在这行下面添加了一些代码:

<div itemscope itemtype="<?php echo woocommerce_get_product_schema(); ?>" id="product-<?php the_ID(); ?>" <?php post_class(); ?>>

我使用WooCommerce函数获取产品详细信息,但它返回超文本标记语言格式化的值,我需要非格式化的产品值。

以下是标签的详细信息:

1.产品基本细节标签

>

产品SKU代码

产品URL:

产品类别

产品图片

产品说明

2.价格标签

  • 价格货币:

谢谢


共有1个答案

孟鸿德
2023-03-14

你需要得到当前的Products对象,为此你将使用一起get_the_id()WordPress函数与wc_get_product()WooCommerce函数这样:

$product = wc_get_product(get_the_ID()); // Getting the Product object from current post ID

使用该$product对象,您可以访问当前产品的任何原始数据
您可以使用箭头语法使用所有WC\u产品类属性和魔法属性:

echo $product->property_slug; // displays the product property (if is a string value)

(此处property_slug应替换为WC_Product类中列出的属性之一)。

$product_id = $product->id;
$product_type = $product->product_type;
$product_post_object =  $product->post; // see below

使用post属性,您可以访问所有post对象属性(就像在wp\u post表中一样):

$product_slug = $product->post->post_name;
$product_title = $product->post->post_title;
$product_description = $product->post->post_content;
$product_short_description = $product->post->post_excerpt;

然后使用WC_产品类方法,您将获得以下结果:

$product_sku = $product->get_sku(); // or $product->sku
$product_url = $product->get_permalink();

// As a product can be in many categories (array)
$product_categories_array = get_the_terms( $product->id, 'product_cat' );
// The categories in a coma separated string
$product_categories_string = $product->get_categories(); 

要获取货币,您将使用专用函数get\u woocommerce\u currency()

对于价格,您将使用相关的WC\u产品属性

$product_price = $product->price;
$product_reg_price = $product->regular_price;

// Product Sale price
$product_sale_price = $product->sale_price;

// Scheduled  Sale price dates (timestamps)
$product_sale_start_ts = get_post_meta($product->id, '_sale_price_dates_from', true);
$product_sale_end_ts   = get_post_meta($product->id, '_sale_price_dates_to', true);

要以DD/MM/YYYY格式格式化产品计划销售价格日期,因为它们作为时间戳值存储在数据库中,我们将使用PHPdate()函数:

$product_sale_start_ts = get_post_meta($product->id, '_sale_price_dates_from', true);
$product_sale_start_date = date('d/m/Y', $product_sale_start_ts);
$product_sale_end_ts = get_post_meta($product->id, '_sale_price_dates_to', true);
$product_sale_end_date = date('d/m/Y', $product_sale_end_ts);

您还可以使用get\u post\u meta()WordPress函数访问此产品元数据,例如获取您将使用的SKU:

$product_sku = get_post_meta($product->id, '_sku', true);

产品形象专用函数为get_the_post_thumbnail()函数:

$product_image = get_the_post_thumbnail( $product_id, 'shop_single' );

但是,作为一个产品,你可以有图像,也可以没有图像,甚至是图像库,你应该在woocommerce模板中查看代码

 类似资料:
  • 我试图在变体下拉列表中显示产品变体价格。我试图改变默认的行为,当你在下拉列表中选择一个变量时,价格显示在div中。 问题是我找不到那个部门的变动价格。我搜索了所有的javascript,但找不到它 如果我使用: 我只得到所有选项的最小变化价格。我想知道每种变体的价格。有线索吗?

  • 我在WooCommerce的后端有一个自定义元框。目前,我已将其设置为显示单个产品页面中的一些数据。 我用过

  • 我正在尝试为函数编写一个代码段。php文件,该文件仅显示所选变体的一个价格,因此忽略了在单个产品页面上随变体价格一起显示的价格范围。我正在使用以下代码: 问题是,例如,当您有两个单一产品的变体,而其中一个缺货时,此脚本会在单一产品页面上隐藏剩余变体的价格。我在想,也许每个产品都有一些可用的变体,并使用IF来使用标准的单一产品模板来显示它们。或者你有更好的办法解决这个问题?

  • 我正在我的WooCommerce网店上为我的产品制作一个自定义附加组件。一切正常,但我只需要一件事。当客户选中产品页面上的复选框时,必须将$30添加到所选变体的原始价格中。 这部分:检查复选框是否被选中。 我的问题就在这里: 的值仅为0。 因此,我试图找出如何获得所选变体的价格。 我尝试了和,但没有任何运气... 更新我已经尝试从这个线程实现代码。有了这些代码,我可以得到所选变体的价格,但我不能再

  • 我对每个包含不同价格的产品都有一些变化,我试图用jQuery获得产品的可变价格,我得到了,但是下面的代码只得到最小变化价格,我想得到当前变化的当前价格。然后,当我更改另一个选择值时,前端的变化会以正确的价格进行更改,但在控制台日志中,会反复显示最小价格,而不是相应变化的相应价格。 我试图研究和wp util。js文件来寻找一些方法,但我不能这样做。 有没有一种方法可以正确地检索当前变化价格与jQu

  • 我目前正在处理一个WooCommerce主题,并试图在产品详细信息页面中添加一个侧栏。 我已经能够添加侧边栏(特别是这个:http://woocommerce.wp-a2z.org/oik_file/templatescontent-widget-product-php/) 现在,我正在想如何在当前选择的产品中添加一类“活动”,但似乎无法解决? 换言之,如果当前产品id等于侧栏中的产品id,我该如