Saya telah menemukan jawaban ini yang dapat menghapus pemilih jumlah keranjang sesuai kebutuhan, namun saya hanya perlu melakukan ini jika item keranjang memiliki data meta tertentu. Karena saya perlu memeriksa meta item keranjang daripada meta produk, saya tidak dapat menggunakan jawaban seperti yang ini.

Bagaimana saya bisa memperbarui kode di bawah ini untuk hanya berlaku jika item memiliki meta data keranjang 'Nomor Tiket'?

add_filter( 'woocommerce_cart_item_quantity', 'wc_cart_item_quantity', 10, 3 );
function wc_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item ){
    if( is_cart() ){
        $product_quantity = sprintf( '%2$s <input type="hidden" name="cart[%1$s][qty]" value="%2$s" />', $cart_item_key, $cart_item['quantity'] );
    }
    return $product_quantity;
}

Saya pikir saya dapat menggunakan beberapa kode dari jawaban ini untuk mengambil meta item keranjang, tetapi saya tidak dapat menemukannya.

function kia_add_subtitle_to_cart_product( $title, $cart_item ){
    $_product = $cart_item['data'];
    $meta     = $_product->get_meta( 'product_card_beschrijving', true ); // THIS PART
    if( $meta ) {
        $title .= '<span class="meta">' . $meta . '</span>';
    }
    return $title;
}
add_filter( 'woocommerce_cart_item_name', 'kia_add_subtitle_to_cart_product', 10, 2 );
2
Lyall 12 Mei 2021, 11:23

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan $cart_item['data']->get_meta()

Jadi Anda mendapatkan:

function filter_woocommerce_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item ) {
    // Get meta
    $ticketnumber = $cart_item['data']->get_meta( 'Ticketnumber', true );   

    if ( $ticketnumber ) {
        $product_quantity = sprintf( '%2$s <input type="hidden" name="cart[%1$s][qty]" value="%2$s" />', $cart_item_key, $cart_item['quantity'] );
    }
    
    return $product_quantity;
}
add_filter( 'woocommerce_cart_item_quantity', 'filter_woocommerce_cart_item_quantity', 10, 3 );
3
7uc1f3r 12 Mei 2021, 08:42