gpt4 book ai didi

wordpress - Woocommerce 在functions.php 中获取单个产品页面的产品sku

转载 作者:行者123 更新时间:2023-12-02 01:33:42 26 4
gpt4 key购买 nike

我在functions.php 内的单个产品页面中获取产品的产品SKU 时遇到了很多麻烦。我有多个单个产品页面,我希望根据产品显示不同的文本。我已经创建了一个子主题,并且正在处理 functions.php 文件。我是 wordpress 和编辑主题的新手,所以我不太了解操作的顺序。我能够让代码工作循环并为我提供所有产品的所有 SKU,但这与我所在的实际页面无关。

我已经尝试了很多东西。常见的解决方案似乎是:

global $product;
echo $product->get_sku();

但这不起作用。出于某种原因,functions.php 脚本中的 $product 变量为空。

我的循环遍历所有产品帖子并获取帖子 ID。我也尝试获取当前页面的 ID,但也没有成功(下面的代码是从另一个站点复制的)。任何帮助将不胜感激。谢谢。
$full_product_list = array();
$loop = new WP_Query( array( 'post_type' => array('product', 'product_variation'), 'posts_per_page' => -1 ) );

while ( $loop->have_posts() ) : $loop->the_post();
$theid = get_the_ID();
$product = new WC_Product($theid);

最佳答案

假设您的主题没有出于任何原因删除 get_sku()woocommerce_after_single_product_summary 就可以正常工作。

add_action( 'woocommerce_after_single_product_summary', 'so_32545673_add_sku', 35 );
function so_32545673_add_sku(){
global $product;
if( $product->get_sku() ) {
echo 'the sku = ' . $product->get_sku();
}
}

一开始我没有看到输出,因为它低于所有相关产品和加售等。

此外,您可能希望切换到 wc_get_product() 而不是尝试直接调用该类。通过以下内容,我获得了产品 SKU 的列表。您应该使用 if( $loop->have_posts() ) 打开 <ul> 但我很懒。
$loop = new WP_Query( array( 'post_type' => array('product', 'product_variation'), 'posts_per_page' => -1 ) );

while ( $loop->have_posts() ) : $loop->the_post();
$theid = get_the_ID();
$product = wc_get_product($theid);

if( $product->get_sku() ) echo '<li>' . $product->get_sku() . '</li>';
endwhile;

关于wordpress - Woocommerce 在functions.php 中获取单个产品页面的产品sku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32545673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com