Maison  >  Questions et réponses  >  le corps du texte

Total du panier pour le mode de paiement spécifique sélectionné dans WooCommerce

Si quelqu'un choisit le paiement à la livraison, je dois arrondir le prix final à la caisse

L'idée générale de ce que je veux réaliser est :

if payment_method == 'cod'{
    $cart_subtotal = round($cart_subtotal);
}

P粉122932466P粉122932466235 Il y a quelques jours334

répondre à tous(1)je répondrai

  • P粉554842091

    P粉5548420912024-03-22 21:21:25

    Tout d'abord, assurez-vous que le total du panier est recalculé à chaque fois que l'utilisateur modifie son mode de paiement :

    add_action('wp_footer', 'trigger_checkout_refresh_on_payment_method_change');
    function trigger_checkout_refresh_on_payment_method_change(){
        if ( is_checkout() && ! is_wc_endpoint_url() ) :
        ?>
    
        sssccc
    
        
    

    Il existe plusieurs façons d'arrondir le prix en fonction de la logique que vous souhaitez mettre en œuvre, mais si l'utilisateur choisit le paiement à la livraison comme mode de paiement, voici la manière la plus simple d'arrondir le total :

    add_filter( 'woocommerce_calculated_total', 'round_total_for_specific_payment_methods', 10, 2 );
    function round_total_for_specific_payment_methods( $total, $cart ) {
        $chosen_payment_method = WC()->session->get('chosen_payment_method');
        
        if ( $chosen_payment_method && $chosen_payment_method === 'cod' ) {
            $total = round( $total );
        }
        
        return $total;
    }
    

    répondre
    0
  • Annulerrépondre