小编Dav*_*ave的帖子

在Woocommerce 3中以编程方式更新产品库存

我需要帮助.我正在尝试以编程方式更新woocommerce产品库存数量.我们通过一些JSON向我们提供了供应商.我可以从Feed中读取库存,并且可以正确地从post meta中提取数据.我正在使用WP和WOO的最新版本.PHP是7.2

以下是我如何从SKU中找到产品ID.

$product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku ) );
Run Code Online (Sandbox Code Playgroud)

这将返回正确的ID,我可以使用它来查看已存在的当前元数据:

$website_stock = get_post_meta($product_id, '_stock', true);
echo "Website Stock -  " . $website_stock . "</br>";
$website_stock_status = get_post_meta($product_id, '_stock_status', true);
echo "Website Stock Status -  " . $website_stock_status . "</br>";
Run Code Online (Sandbox Code Playgroud)

然后我更新了我从Feed中获得的库存.这可以是从零到x或x到零以及介于两者之间的任何地方.这是我更新缺货的方式:

$out_of_stock_staus = 'outofstock';

update_post_meta($product_id, '_stock', 0);
update_post_meta($product_id, '_stock_status', wc_clean( $out_of_stock_staus ));
wc_delete_product_transients( $product_id ); // Clear/refresh the variation cache
Run Code Online (Sandbox Code Playgroud)

这是它变得奇怪的地方.

更新了sku

数据在管理面板的产品视图中正确显示.作为旁注,这个SKU可以属于一个变体(我们有很多),或者它可能是一个简单的产品.最后,他们似乎都更新了.我没有看到错误.

我在我的functions.php中使用了一个小小的PHP片段,它在下拉列表中显示缺货项目.这里是:

    /* Grey out out of stock …
Run Code Online (Sandbox Code Playgroud)

php wordpress product stock woocommerce

9
推荐指数
2
解决办法
9739
查看次数

将自定义文本添加到 Woocommerce 中的变化价格

我以为这很容易,但我被困住了。我想做的就是在产品页面上的变体价格后面添加“each”一词。我找到的解决方案将其添加到类别页面和产品页面的两个位置。

代码是:

 /*  Adds a text Each - after price */
function change_product_price( $price ) {
    $price .= ' each';
    return $price;
}
add_filter( 'woocommerce_get_price_html', 'change_product_price' );
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

从上图中,我只需要将每个添加到“添加到购物车”按钮上方的价格中,而不需要像上图中划掉的部分那样添加其他包。

感谢您提供的任何指导。

php wordpress woocommerce price product-variations

1
推荐指数
1
解决办法
4695
查看次数

以编程方式设置产品价格,使其显示在 Woocommerce 中的任何位置

我有一个 php cron 作业,正在更新来自第 3 方供应商的产品信息。这些变化可以是价格、销售价格、库存等。

我的一切都在运行,除了当我通过以下代码销售产品时:

 update_post_meta( $product_id, '_sale_price', $sale_price );
 update_post_meta( $product_id, '_price', $sale_price );
Run Code Online (Sandbox Code Playgroud)

产品已正确更新,并在网站和产品管理上显示产品的销售价格。当我使用 woocommerce 的短代码之一来显示在售产品时,它不会撤回通过上述代码更新的内容,除非它是通过管理面板完成的。

[products limit="24" columns="4" on_sale="true" ]
Run Code Online (Sandbox Code Playgroud)

所以我的代码没有做 woocommerce 所做的事情,但我不知道我错过了什么。到目前为止,我发现的唯一解决方法是删除管理面板中的销售价格 - >保存,然后将其添加回来 - >并再次保存。由于 3,000 多种产品有 18,000 多种变体,这不是手工可以完成的事情。

顺便说一句:当我们导入 vis csv 文件源时,我也遇到了 WP all import 的问题。

任何想法或想法都会有帮助。

谢谢!

php wordpress product woocommerce price

0
推荐指数
1
解决办法
5268
查看次数