php 在WooCommerce中为缺货产品的显示价格包含产品属性

6ojccjat  于 2023-08-02  发布在  PHP
关注(0)|答案(1)|浏览(121)

我希望有人能帮助我,我真的是新手。我想修改我的woocommerce网站上产品价格的显示方式。具体来说,我想锁定没有库存的项目,而不是显示价格,显示Last ticketed at($Price)in(Year)我已经将年份作为属性添加到我的产品中(每个产品只有一年)。它被称为年。
我一直在摆弄这个片段,不能让它工作,主要是因为我不知道我在做什么。(这段代码是我在网上其他地方找到的东西的修改)

add_filter( 'woocommerce_get_price_html', 'modify_price_out_of_stock_items', 9999, 2 );

function modify_price_out_of_stock_items( $price, $product ) {
global $product;
$year = $product->get_attribute('pa_Year');

if ( is_admin() ) return $price; // BAIL IF BACKEND
if ( ! $product->is_in_stock() ) {
$year = wc_get_product_terms( $product->get_id(), 'pa_Year', array( 'fields' => 'slugs' ) ) ;
$price = 'Last ticketed at ' . $price . ' in ' . $year[0];
}
return $price;
}

字符串
有人能帮我纠正一下吗?
我尝试了该代码,希望“2017年最后一次以1000美元的价格出票”的文本出现在缺货商品旁边。但是,“年份”字段不显示。

ilmyapht

ilmyapht1#

代码放在主题或子主题的functions.php中。

add_filter( 'woocommerce_get_price_html', 'modify_price_out_of_stock_items', 9999, 2 );

function modify_price_out_of_stock_items( $price, $product ) {
    // Check if the product is in stock
    if ( ! $product->is_in_stock() ) {
        // Get the 'Year' attribute value
        $year = $product->get_attribute( 'Year' );

        // If the 'Year' attribute is set for the product
        if ( $year ) {
            // Format the price and year information
            $price = 'Last ticketed at ' . wc_price( $product->get_regular_price() ) . ' in ' . $year;
        } else {
            // If the 'Year' attribute is not set, display a generic message
            $price = 'Last ticketed at ' . wc_price( $product->get_regular_price() ) . ' in Year N/A';
        }
    }
    return $price;
}

字符串

相关问题