2

商品の説明とバリエーションの説明を表示しようとしています:

1.受注ページおよびメールにて

Woocommerceを使用しています: 注文ページの回答コードに製品バリエーションの説明を表示します。

このコードは v5.3 で機能しますが、製品の数量が説明の最後に移動しました -> https://prnt.sc/12yc7l4

これは問題を解決するための私の試みです。

add_filter( 'woocommerce_order_item_name', 'display_product_title_as_link', 10, 3 );
function display_product_title_as_link( $item_name, $item ,$qty) {

    $_product = get_product( $item['variation_id'] ? $item['variation_id'] : $item['product_id'] );

    $link = get_permalink( $_product->id );

    $_var_description ='';

    if ( $item['variation_id'] ) {
        $_var_description = $_product->get_variation_description();
    }

    return '<a href="'. $link .'"  rel="nofollow">'. $item_name .'</a>'. $qty .'<br>'. $_var_description ;
}

商品名と商品数量に影響を与えないようにするにはどうすればよいですか?


2.カート、ミニ カート、およびチェックアウト ページで - 私はWooCommerce を使用しています: カート項目の回答コードに製品バリエーションの説明も表示します

この行を使用すると v5.3 で機能しますが、製品の説明が製品名に追加されていると便利ですが、説明が製品名を完全に置き換えるようになりました。どうすれば修正できますか?

編集:問題 2 が修正されました!

4

1 に答える 1

1

$decriptionを新しい行に表示するには、woocommerce_order_item_meta_startアクション フックとwoocommerce_order_item_nameフィルター フックを使用できます。

したがって、次のようになります。

function action_woocommerce_order_item_meta_start( $item_id, $item, $order, $plain_text ) {
    // Get product
    $product = $item->get_product();

    // Variation description
    if ( $item['variation_id'] > 0 ) {
        $description = $product->get_description();
    } else {
        // Product short description (for others)
        $description = $product->get_short_description();
    }
    
    echo '<div>' . $description . '</div>';
}
add_action( 'woocommerce_order_item_meta_start', 'action_woocommerce_order_item_meta_start', 10, 4 );
于 2021-05-15T09:27:10.107 に答える