修改SKU以显示在产品页面上

时间:2015-05-18 作者:Bernhard Berger

我正在尝试修改可变产品的产品页面上显示的SKU。SKU的格式为“text1.text2.text3”。文本可以包含所有字母和数字,长度可变。在产品页面上,我只想显示文本1。文本2作为SKU。

到目前为止,我在函数中包含了以下代码。我的主题php(Avada)。但是,SKU输出不变。你能给我一些建议吗?我不确定我使用的钩子是否正确。

add_action( \'avada_woocommerce_before_product_summary\', \'modifySKU\' );

function modifySKU( $atts )
{
    global $product;

    $atts = shortcode_atts( array( \'id\' => \'\', ), $atts );

    // If there is no ID, we are already on a product page
    if (empty( $atts[\'id\'] ) )
    {
        $sku = $product->get_sku();
        // new array $output_array();
        preg_match("/[^\\.]*\\.[^\\.]*/", $sku, $output_array);
        $sku = reset($output_array);
        return $sku;
    }
}

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

尝试使用核心WooCommerce筛选器woocommerce_get_sku:

function wpse_188691_woocommerce_get_sku( $sku, $product ) {
    if ( ! is_admin() ) {
        $parts = explode( \'.\', $sku );

        // Only first two parts
        $parts  = array_slice( $parts, 0, 2 );

        // OR all parts except last (remove above)
        // array_pop( $parts );

        $sku = implode( \'.\', $parts );
    }

    return $sku;
}

add_filter( \'woocommerce_get_sku\', \'wpse_188691_woocommerce_get_sku\', 10, 2 );

结束

相关推荐