Woocommerce afficher les produits par ordre alphabétique sur la page commande

Pour afficher les produits par ordre alphabétique sur la page commande de vos clients ajouter le code suivant dans le fichier function.php de votre thème wordpress.

Pour trier par ordre alphabétique je vais utiliser la fonction natsort qui implémente un algorithme de tri qui traite les chaînes alpha-numériques du tableau arraycomme un être humain tout en conservant la relation clé/valeur. C’est ce qui est appelé l'”ordre naturel”.

add_action( 'woocommerce_cart_loaded_from_session','nax_order_product'); 

function nax_order_product() {
    global $woocommerce;

	$products_in_cart = array();

	foreach ( $woocommerce->cart->cart_contents as $key => $item ) {
		$products_in_cart[ $key ] = $item['data']->get_title();
	}

	natsort( $products_in_cart );

	$cart_contents = array();

	foreach ( $products_in_cart as $cart_key => $product_title ) {

		$cart_contents[ $cart_key ] = $woocommerce->cart->cart_contents[ $cart_key ];
	}

	$woocommerce->cart->cart_contents = $cart_contents;

}

 

Woocommerce personnalisé les messages ajouter au panier

Le code ci-dessous va permettre de personnalisé les messages que les produits ont bien été ajouter au panier sur la page produit et panier.
Si vous avez activé : Rediriger vers le panier après un ajout réussi dans Woocommerce > Paramètre > produit le message suivant apparaitra :

– Votre article a bien été ajouté au panier. Continuer mes achats

Si vous n’avez pas cochez Rediriger vers le panier après un ajout réussi le message suivant apparaitra sur la page produit :

– Votre article a bien été ajouté au panier. Voir mon panier

Ajouter le code suivant dans le fichier function.php de votre thème WordPress :

function new_add_to_cart_message() {
global $woocommerce;
	
	if (get_option('woocommerce_cart_redirect_after_add')=='yes') :
		$return_to 	= get_permalink(woocommerce_get_page_id('shop'));

	// Message pour le panier
    $message = sprintf( '%s<a href="%s" class="your-style">%s</a> ', __( 'Votre article a bien été ajouté au panier.', 'woocommerce' ), esc_url( get_permalink( woocommerce_get_page_id( 'shop' ) ) ), __( 'Continuer mes achats', 'woocommerce' ) );
else :
	// Message pour la page produit
    $message = sprintf( '%s<a href="%s" class="your-class">%s</a> ', __( 'Votre article a bien été ajouté au panier.' , 'woocommerce' ), esc_url( get_permalink( woocommerce_get_page_id( 'cart' ) ) ), __( 'Voir mon panier', 'woocommerce' ) );
endif;
return $message;
}
add_filter( 'wc_add_to_cart_message', 'new_add_to_cart_message' );

Afficher le contenu du panier sans Widget – Woocommerce

Pour afficher le contenu du panier sans widget dans votre site marchant sous Woocommerce, placer le code suivant a l’endroit désiré :

<a href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e( 'Voir votre panier' ); ?>"><?php echo sprintf (_n( '%d Article', '%d Articles', WC()->cart->cart_contents_count ), WC()->cart->cart_contents_count ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a>

Puis pour utiliser Ajax ajouter le code suivant dans le fichier function.php de votre thème WordPress :

add_filter( 'woocommerce_add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment' );
function woocommerce_header_add_to_cart_fragment( $fragments ) {
	ob_start();
	?>
	<a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e( 'Voir votre panier' ); ?>"><?php echo sprintf (_n( '%d Article', '%d Articles', WC()->cart->cart_contents_count ), WC()->cart->cart_contents_count ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a> 
	<?php
	
	$fragments['a.cart-contents'] = ob_get_clean();
	
	return $fragments;
}

Ajouter automatiquement un produit au panier

Si vous souhaitez ajouter automatiquement un produit au panier lors de la visite d’un internaute dans votre boutique Woocommerce.
Ajouter le code suivant dans le fichier function.php de votre thème WordPress :

// Ajouter un produit automatiquement
add_action( 'init', 'add_product_to_cart' );

function add_product_to_cart() {
if ( ! is_admin() ) {
global $woocommerce;
$product_id = 22;
$found = false;
//On vérifie si il y a déja un produit dans le panier
if ( sizeof( $woocommerce->cart->get_cart() ) > 0 ) {
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if ( $_product->id == $product_id )
$found = true;
}

if ( ! $found )
$woocommerce->cart->add_to_cart( $product_id );
} else {

$woocommerce->cart->add_to_cart( $product_id );
}
}
}

 

A la ligne 6 $product_id = 22  remplacer 22 par l’identifiant du produit à ajouter automatiquement.

2015-08-15_18h24_58

2/ Permettre a votre client de supprimer le produits ajouter automatiquement dans le panier.

Si vous voulez permettre à votre client de supprimer un produit qui a été ajouté automatiquement dans leur panier, vous pouvez ajouter le code suivant dans le fichier function.php. Ce code va créer une règle sur la page du panier et de commande qui permettra à votre client de supprimer le produit qui a été ajouté automatiquement.

 

add_action( 'template_redirect', 'add_product_to_cart' );

function add_product_to_cart() {
    if ( ! is_admin()  && !is_cart() && !is_checkout()) {
        $product_id = 71; //Remplacer 22 par l'identifiant de votre produit
        $found = false;
        // On vérifie si le produit est déjà dans le panier
        if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
            foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
                $_product = $values['data'];
                if ( $_product->get_id() == $product_id )
                    $found = true;
            }
            // Si le produit n'est pas trouvé, ajoutez-le.
            if ( ! $found )
                WC()->cart->add_to_cart( $product_id );
        } else {
            // if no products in cart, add it
            WC()->cart->add_to_cart( $product_id );
        }
    }
}

 

3/ Ajouté un produit automatiquement en fonction du montant du panier.

Dans ce 3éme extrait de code vous pouvez définir un montant minimum pour avoir un produit gratuitement et votre client pourra le supprimer dans son panier. Ajouter le code suivant dans le fichier function.php.

/*
* Ajout automatique du produit au panier lorsque le montant total du panier atteint 60€.
*/

function naxialis_add_product_to_cart() {
    global $woocommerce;
    
    if ( ! is_admin()  && !is_cart() && !is_checkout()) {
    
    $cart_total	= 60; // Ici on defini le montant minimum pour avoir le produit gratuit	

    if ( $woocommerce->cart->total >= $cart_total ) {
        if ( ! is_admin() ) {
            $free_product_id = 22;  // Remplacer 22 par l'identifiant de votre produit
            $found 		= false;

            // On vérifie si le produit est déjà dans le panier
            if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
                foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
                    $_product = $values['data'];
                    if ( $_product->get_id() == $free_product_id )
                    	$found = true;	                
                }
                // Si le produit n'est pas trouvé, ajoutez-le.
                if ( ! $found )
                    WC()->cart->add_to_cart( $free_product_id );
            } else {
                // if no products in cart, add it
                WC()->cart->add_to_cart( $free_product_id );
            }        
        }
    }
    }        
}

add_action( 'template_redirect', 'naxialis_add_product_to_cart' );

 

WooCommerce Ajouter un bouton vider le panier

Pour Ajouter un bouton vider le panier dans le plugin WooCommerce, insérer la fonction suivante dans votre fichier function.php de votre thème WordPress.

add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url() {
  global $woocommerce;
	
	if ( isset( $_GET['empty-cart'] ) ) {
		$woocommerce->cart->empty_cart(); 
	}
}

Puis ajouter le lien suivant dans le tableau html.

Woocommerce/templates/cart/cart.php”, a la ligne 134 :

<a class="button"  href="<?php echo $woocommerce->cart->get_cart_url(); ?>?empty-cart"><?php _e( 'Vider le panier', 'woocommerce' ); ?></a>