j'utilise cette méthode en combinaison avec un appel ajax pour définir un produit d'un configurateur à mon panier:
$ woocommerce-> cart-> add_to_cart ($ p_id, $ p_quantity, $ p_var_id, $ p_var_name);
Comment puis-je utiliser cette méthode pour définir un prix personnalisé calculé? C'est possible?
Salutations,
Marvin
Il n’existe actuellement aucun moyen simple d’ajouter un prix personnalisé au produit qui est ajouté via la fonction $woocommerce->cart->add_to_cart
( Documentation ), mais nous avons un moyen de contournement que j’explique dans le code ci-dessous
global $woocommerce;
$custom_price = 1000;
// Cart item data to send & save in order
$cart_item_data = array('custom_price' => $custom_price);
// woocommerce function to add product into cart check its documentation also
// what we need here is only $product_id & $cart_item_data other can be default.
$woocommerce->cart->add_to_cart( $product_id, $quantity, $variation_id, $variation, $cart_item_data );
// Calculate totals
$woocommerce->cart->calculate_totals();
// Save cart to session
$woocommerce->cart->set_session();
// Maybe set cart cookies
$woocommerce->cart->maybe_set_cart_cookies();
dans votre fichier de fonctions, vous pouvez placer le code ci-dessous
function woocommerce_custom_price_to_cart_item( $cart_object ) {
if( !WC()->session->__isset( "reload_checkout" )) {
foreach ( $cart_object->cart_contents as $key => $value ) {
if( isset( $value["custom_price"] ) ) {
//for woocommerce version lower than 3
//$value['data']->price = $value["custom_price"];
//for woocommerce version +3
$value['data']->set_price($value["custom_price"]);
}
}
}
}
add_action( 'woocommerce_before_calculate_totals', 'woocommerce_custom_price_to_cart_item', 99 );
et vous êtes prêt à partir