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

WooCommerce在functions.php中获得单个产品页面的产品sku

郗阳德
2023-03-14

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

我试过很多东西。常见的解决方案似乎是:

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

但那不起作用。由于某些原因,$producs变量在functions.php脚本中为空。

我拥有的循环遍历所有产品帖子并获取帖子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);

共有1个答案

彭华皓
2023-03-14

get\u sku()如果您的主题没有因为任何原因在单个产品摘要之后删除woocommerce\u,则工作正常。

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\u get\u product(),而不是尝试直接调用该类。通过以下内容,我得到了产品SKU的列表。您应该使用if($loop)-

$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;

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

  • 我想按价格、日期和发布年份等项目对产品进行排序。在发布年份的情况下,我做了一个分类法=发布年份 但它是不工作.我怎么能改变代码可能排序按发布年份顺序?

  • 我正在开发一个WooCommerce主题,在单个产品页面上,我想显示来自同一供应商类别的产品旋转木马。 我有以下类别结构: 所有产品 1号产品类别 第2类产品 产品类别 供应商 供应商名称1 供应商名称2 供应商名称 在查看类别1中的产品时,如果将产品分配给此类子类别,则我希望显示来自同一供应商名称类别的其他产品的转盘。 在我的示例中,供应商和所有产品都是同一级别的父类别。 做一个定制的产品循环非

  • 对于我的WC产品页面,我需要向body标记添加一个类,以便执行一些自定义样式。这是我为这个创建的函数。。。 …但是我怎么才能拿到猫的身份证呢?

  • 我似乎在为木业的某些东西而苦苦挣扎。 我已经创建了一个单一的产品页面模板,当前显示产品的特色图像在页面顶部的横幅。 但我想我得先找到分类?我不确定从这里到哪里去。 如果有任何帮助,我们将不胜感激。

  • 我试图获取当前产品id,但它返回null; 我想在下面的功能中使用产品ID 注意,我希望在“functions.php”文件中获取产品id。 我试过了 和 但这不起作用