Nell’articolo di oggi scopriamo come aggiungere metodi di spedizione personalizzati a Woocommerce.
Woocommerce non offre di default la possibilità di aggiungere in modo autonomo i moduli di spedizione, ma si limita di fatto a:
- Modulo italia
- Flat rate (Eu o paesi specifici)
- Spedizione mondo
- Ritiro in sede
- Spedizione gratis
Ma è possibile aggiungere metodi di spedizione personalizzati? Ecco il codice da inserire:
File: functions.php del vostro tema.
Nel file di esempio aggiungiamo – ad esempio – un flat rate di spedizione “express” piu veloce per l’Italia.
/*
Plugin Name: Spedizione Italia - Express
Plugin URI: http://www.targetweb.it/aggiungere-metodi-di-spedizione-personalizzati-a-woocommerce/
Description: Spedizione Italia - Express plugin
Version: 1.0.0
Author: Targetweb
Author URI: http://www.targetweb.it/
*/
/**
* Check se Woocommerce è attivo
*/
if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
function shipping_italia_express_init() {
if ( ! class_exists( 'WC_Shipping_Italia_Express_Method' ) ) {
class WC_Shipping_Italia_Express_Method extends WC_Shipping_Method {
/**
* Costruisco la classe di shipping
*
* @access public
* @return void
*/
public function __construct() {
$this->id = 'shipping_italia_express'; // Id univoco per il metodo di spedizione
$this->method_title = __( 'Spedizione Italia - Express ' ); // titolo in area admin
$this->method_description = __( 'Spedizione Italia - Express 1-2 giorni lavorativi' ); // descrizione area admin
$this->enabled = "yes"; // Abilitato di default?
$this->title = "Spedizione Italia - Express"; // Titolo della spedizione, è possibile renderlo dinamico
$this->init();
}
/**
* Inizializzo
*
* @access public
* @return void
*/
function init() {
$this->init_form_fields();
$this->init_settings();
// Salvataggio
add_action( 'woocommerce_update_options_shipping_' . $this->id, array( $this, 'process_admin_options' ) );
}
/**
* Funzione di calcolo
*
* @access public
* @param mixed $package
* @return void
*/
public function calculate_shipping( $package ) {
$rate = array(
'id' => $this->id,
'label' => $this->title,
'cost' => '14.00', // prezzo da impostare
'calc_tax' => 'per_order' // possibilità di fare un prezzo per_order o per_item
);
$this->add_rate( $rate );
}
}
}
}
add_action( 'woocommerce_shipping_init', 'shipping_italia_express_init' );
function add_your_shipping_method( $methods ) {
$methods[] = 'WC_Shipping_Italia_Express_Method';
return $methods;
}
add_filter( 'woocommerce_shipping_methods', 'add_your_shipping_method' );
}
Vi invito a visionare i commenti al codice per ulteriori delucidazioni.
Grazie a queste poche righe di codice riuscirete facilmente ad aggiungere dei custom shipping method utilissimi per estendere le funzionalità del vostro shop online!
Questo articolo ti è stato utile? Condividilo sui tuoi social network preferiti!






