it-swarm-ja.com

商品ページに表示するためにSKUを変更する

可変商品の商品ページに表示されるSKUを変更しようとしています。 SKUのフォーマットは "text1.text2.text3"です。テキストにはすべての文字と数字を含めることができ、可変長です。商品ページでは、text1.text2のみをSKUとして表示します。

私はこれまでのところ私のテーマ(Avada)のfunctions.phpに含まれるように以下のコードを思いついた。ただし、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
Bernhard Berger

コアの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 );
1
TheDeadMedic