Saya perlu menyemak troli untuk melihat sama ada atribut produk tertentu telah ditambahkan pada mana-mana produk. (Ini adalah dalam fungsi penghantaran tersuai yang disambungkan ke woocommerce_package_rates.)
Saya mempunyai ID varian untuk setiap item dalam troli saya tetapi saya tidak tahu bagaimana untuk mendapatkan varian slug untuk item itu...
foreach (WC()->cart->get_cart() as $cart_item) { // $product_in_cart = $cart_item['product_id']; $variation_id = $cart_item['variation_id'] > 0 ? $cart_item['variation_id'] : $cart_item['product_id']; $variation = wc_get_product($variation_id); $variation_name = $variation->get_formatted_name(); //I want to get the slug instead. // if there is the swatch variation of any product in the cart. if ( $variation_name == 'swatch') $cart_has_swatch = "true"; }
Anda menyebabkan beberapa huru-hara. Pada Projek Troli WooCommerce:
$cart_item['data']
;$cart_item['variation']
boleh diakses melalui (iaitu susunan taksonomi atribut produk, pasangan nilai slug atribut produk) .$variation->get_formatted_name()
ialah nama varian produk (diformat) dan oleh itu bukan atribut produk varian.woocommerce_package_rates
过滤器挂钩,使用$package['contents']
而不是WC()->cart->get_cart()
.Soalan anda tidak begitu jelas kerana kami tidak tahu sama ada anda sedang mencari istilah "sampel" dalam taksonomi atribut atau nilai segmen atribut.
Cuba yang berikut:
Ia sepatutnya berkesan untuk anda.