J'ai ajouté un code dans function.php pour ajouter la section quantité après l'ajout au panier dans toutes les pages.
Mais je ne veux pas l'ajouter également dans la page de la liste de souhaits,
Je la prépare donc comme suit :
add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2 );
function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) {
if (!is_page('wishlist')) {
if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) {
$html = '<form action="' . esc_url( $product->add_to_cart_url() ) . '" class="cart" method="post" enctype="multipart/form-data">';
// Access the cart items
$in_cart = false;
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product_id = $cart_item['product_id'];
$quantity = $cart_item['quantity'];
if($product_id == $product->get_ID()){
$in_cart = true;
break;
}
}
// If we have match update quantity
if($in_cart) {
$html .= woocommerce_quantity_input( array('input_value' => $quantity), $product, false );
} else {
$html .= woocommerce_quantity_input( array(), $product, false );
}
$html .= '<button type="submit" class="button alt">' . esc_html( $product->add_to_cart_text() ) . '</button>';
$html .= '</form>';
}
return $html;
}
}
Cela fonctionne, mais le problème est qu'il supprime le bouton d'ajout au panier sur la page de la liste de souhaits.
Qu'est-ce que je fais de travers ? Est-ce que je peux le faire sans appeler le hook woocommerce_loop_add_to_cart_link ?
Car si je l'enlève du filtre, le bouton réapparaît.