Woocommerce - Come impostare il prezzo base predefinito del prodotto

30 giu 2013, 10:27:47
Visualizzazioni: 29.3K
Voti: 3

Sto utilizzando WooCommerce al lavoro per le richieste di attrezzature, quindi tutti i prodotti che creerò dovranno avere un prezzo di £0. È possibile impostare un valore predefinito di 0 per il campo del prezzo base nel modulo di aggiunta prodotto?

Grazie Jack

1
Commenti

In alternativa, puoi utilizzare un plugin come WooCommerce Request A Quote per semplicemente rimuovere il pagamento in generale.

Karl Wolf Karl Wolf
26 gen 2016 14:27:55
Tutte le risposte alla domanda 3
7

Potresti eseguire un controllo sull'hook save_post, ma WooCommerce ha già un hook per elaborare i metadati dove i controlli di sicurezza e del tipo di post sono già stati eseguiti. Quindi, utilizzando il loro hook, devi solo verificare una stringa vuota per il prezzo regolare e impostarla a 0.

function wpa104760_default_price( $post_id, $post ) {

    if ( isset( $_POST['_regular_price'] ) && trim( $_POST['_regular_price'] ) == '' ) {
        update_post_meta( $post_id, '_regular_price', '0' );
    }

}
add_action( 'woocommerce_process_product_meta', 'wpa104760_default_price' );

Non sono sicuro di cosa stai cercando di fare con WooCommerce, ma ho avuto un cliente che ha utilizzato http://a3rev.com/shop/woocommerce-quotes-and-orders/ per passare da un normale negozio con prezzo/carrello a un catalogo "richiesta di preventivo".

Modifica: Mentre il codice sopra salverà 0 come prezzo ogni volta che un prodotto viene creato/aggiornato, il seguente codice permetterà sempre che un prodotto sia acquistabile indipendentemente dal prezzo:

add_filter('woocommerce_is_purchasable', '__return_TRUE'); 

Per rimuovere completamente il badge "saldi", semplicemente scollegalo dal suo action hook:

function woocommerce_remove_stuff(){
  remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10 );
}
add_action('woocommerce_before_single_product', 'woocommerce_remove_stuff');
30 giu 2013 17:13:02
Commenti

Grazie per la tua risposta. Ho provato la funzione sopra indicata ma sembra non permettere l'aggiunta del prodotto al carrello. Sto cercando di creare un sistema di richiesta attrezzature dove gli utenti loggati possono aggiungere attrezzature (che non hanno prezzo) al carrello e inviare un "ordine" per questi articoli. Gli utenti sono dipendenti della mia azienda e le attrezzature sono già di proprietà dell'azienda.

lupo lupo
1 lug 2013 23:23:18

Pensavo che un prodotto gratuito potesse essere aggiunto al carrello. Potresti anche provare a sovrascrivere il filtro woocommerce_is_purchasable per essere sempre vero.

helgatheviking helgatheviking
2 lug 2013 00:03:06

Quando inserisco manualmente 0 come prezzo posso aggiungerlo al carrello, ma usando la funzione sopra e lasciandolo vuoto non mostra il pulsante di aggiunta al carrello ma visualizza l'icona di saldo. Come potrei sovrascrivere il filtro woocommerce_is_purchasable?

lupo lupo
2 lug 2013 00:14:46

Il mio codice era per quando crei e/o modifichi un prodotto e non compili il prezzo... quindi un prezzo predefinito. Imposta automaticamente il prezzo a 0 ma solo quando salvi un prodotto. Non ha alcun impatto sul front-end tranne quello che è influenzato dall'avere un prezzo zero. Ancora una volta, penso che woocommerce_is_purchasable potrebbe essere la soluzione.

helgatheviking helgatheviking
2 lug 2013 00:29:50

add_filter('woocommerce_is_purchasable', 'woocommerce_is_always_purchasable');

function woocommerce_is_always_purchasable(){ return true; }

lupo lupo
2 lug 2013 00:44:08

Grazie, il codice sopra ha risolto il problema ma per qualche motivo viene visualizzata l'icona di saldo. È possibile disabilitare completamente la funzione di saldo dato che è qualcosa che non utilizzerò?

lupo lupo
2 lug 2013 00:47:12

Controlla la mia modifica per rimuovere il banner di sconto.

helgatheviking helgatheviking
2 lug 2013 05:34:50
Mostra i restanti 2 commenti
0

Ho trovato la soluzione a questo problema, questa funzione imposta il prezzo regolare e il prezzo in offerta del prodotto a 0 dopo l'aggiornamento del prodotto:

function set_default_price( $post_id, $post ) {

    if ( isset( $_POST['_regular_price'] ) && trim( $_POST['_regular_price'] ) == '' ) {
        update_post_meta( $post_id, '_regular_price', '0' );
    }

if ( isset( $_POST['_sale_price'] ) && trim( $_POST['_sale_price'] ) == '' ) {
        update_post_meta( $post_id, '_sale_price', '0' );
    }

}
add_action( 'woocommerce_process_product_meta', 'set_default_price' );

La riga di codice seguente rende acquistabile il nuovo prodotto, puoi usare questo codice per i nuovi prodotti:

add_filter('woocommerce_is_purchasable', '__return_TRUE'); 
24 gen 2014 12:47:19
0

In WooCommerce 3 puoi utilizzare questo codice:

function NAME_default_price($product)
{
  if (!$product->get_regular_price()) {
    $product->set_regular_price('0');
  }
}
add_action('woocommerce_admin_process_product_object', 'NAME_default_price');
24 apr 2024 13:11:56