storefront-woocommerce

Disabilitare i pulsanti Aggiungi al carrello su WooCommerce

Diciamo che molti dei tuoi determinati prodotti stanno esaurendo le scorte e devi disabilitare temporaneamente i loro pulsanti di aggiunta al carrello, la guida di seguito ti mostrerà come fare.

Fondamentalmente, devi ottenere l’ID dei prodotti desiderati, quindi incollare il seguente frammento di codice nel tuo file functions.php.

/* Rimuovi "Aggiungi al carrello" per specifico prodotto */
add_filter('woocommerce_is_purchasable', 'filter_is_purchasable', 10, 2);
function filter_is_purchasable($is_purchasable, $product ) {
	global $product;
	if( in_array( $product->get_id(), not_purchasable_ids() )) {
		return false;
	}
	return $is_purchasable;
}
function not_purchasable_ids() {
	return array(159);
}

Come puoi vedere nello snippet di codice sopra, disabilitiamo il pulsante Aggiungi al carrello per i prodotti con ID 159. Ricorda di sostituire quell’ID con i tuoi ID prodotto effettivi. Se vuoi nascondere più pulsanti, aggiungi più prodotti separando gli ID con una virgola.

Nascondi pulsanti Aggiungi al carrello per utenti non registrati

Immagina di offrire un’offerta speciale per i tuoi clienti fedeli o registrati. Solo chi riceve le tue email può accedere alla tua offerta tramite i link di sconto allegati. Tuttavia, cosa succede se i tuoi clienti condividono quei link con i loro amici e parenti?

Per evitare questo scenario e assicurarti che solo i clienti giusti possano godere dei tuoi sconti, puoi nascondere i pulsanti di aggiunta al carrello nei negozi WooCommerce per gli utenti non registrati.

Quello che devi fare include inserire il seguente script nel file functions.php del tuo tema:

/* Rimuovi "Aggiungi al carrello" per utenti non registrati */
if (!is_user_logged_in()) {
	add_filter('woocommerce_is_purchasable', '__return_false');
}

Utilizzando la funzione nativa di WordPress is_user_logged_in(), disabiliteremo il pulsante Aggiungi al carrello solo per gli utenti che non hanno effettuato l’accesso.

Rimuovi i pulsanti Aggiungi al carrello in base ai ruoli utente

Questo metodo è utile se si esegue un sito di appartenenza con più ruoli utente.

Per rimuovere il pulsante Aggiungi al carrello in base ai ruoli utente, inserisci questo codice nel file functions.php del tuo tema figlio:

Ad esempio, applichiamo questo codice per gli abbonati.

/* Rimuovi "Aggiungi al carrello" per utenti sottoscrittori */
add_action('wp_loaded','get_user_role');
function get_user_role(){
	$current_user = wp_get_current_user();
	if(count($current_user->roles)!==0){
		if($current_user->roles[0]=subscribers=''){
		add_filter('woocommerce_is_purchasable', '__return_false');
	}}
}

In questo frammento di codice:

  • La prima riga aiuta a determinare se un utente ha un ruolo.
  • Nel caso in cui il ruolo utente corrisponda a quello da noi specificato (abbonati in questo caso), la seconda riga renderà i prodotti non acquistabili per quel ruolo.
  • Puoi modificare i ruoli utente modificando “tuo_ruolo” con i ruoli effettivi in ​​questa variabile: if($current_user->roles[0]==’your_role’){.

5 comments

  1. Ciao
    ho bisogno di rimuovere il pulsante aggiungi al carrello per un determinato prodotto e ho seguito la tua guida, però non funziona. Puoi verificare se è tutto giusto?
    Grazie

  2. Salve
    Mi servirebbe il codice per disabilitare AGGIUNGI AL CARRELLO per CATEGORIA e non per prodotti.

    Già ho provato il suo codice per i prodotti e funziona, però c’è un problema, per il prodotto semplice tutto OK, se il prodotto è variabile non disabilita.

    Grazie anticipate per l’aiuto
    Piero

    1. Ciao Piero,

      puoi prendere spunto da questa funzione per nascondere il tasto per prodotti di una specifica categoria su WooCommerce

      add_filter('woocommerce_is_purchasable', 'set_catalog_mode_on_for_category', 10, 2 );
      function set_catalog_mode_on_for_category( $is_purchasable, $product ) {
      if( has_term( 'Category Name', 'product_cat', $product->get_id() ) ) { //Change Category name here
      return false; }
      return $is_purchasable;
      }

  3. Ciao Ostap…
    nel codice che hai inserito per nascondere il bottone in base hai ruoli,
    c’è un errore di sintassi in questo punto:
    if($current_user->roles[0]=subscribers=”){

    A me funziona coreggendo in questo modo:
    /* Rimuovi “Aggiungi al carrello” per utenti sottoscrittori */
    add_action(‘wp_loaded’,’get_user_role’);
    function get_user_role(){
    $current_user = wp_get_current_user();
    if(count($current_user->roles)!==0){
    if(‘$current_user->roles[0]=subscribers’){
    add_filter(‘woocommerce_is_purchasable’, ‘__return_false’);
    }}
    }

    Comunque grazie per la dritta e per i tuoi suggerimenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *