私はカスタム配送方法を追加するために下記のコードを使用しました(woocommerce APIによって提供されています)、別の配送方法を追加したいと思います。実際には動作しません。第2の方法は最初のものを置き換えます。Woocommerce複数の配送方法を追加する
私は別の配送方法をどのように作成できますか? はありがとう
function your_shipping_method_init() {
if (! class_exists('WC_Your_Shipping_Method')) {
class WC_Your_Shipping_Method extends WC_Shipping_Method {
/**
* Constructor for your shipping class
*
* @access public
* @return void
*/
public function __construct() {
$this->id = 'vip_rate'; // Id for your shipping method. Should be uunique.
$this->method_title = __('VIP Shipping Rate'); // Title shown in admin
$this->method_description = __('$35 flate rate'); // Description shown in admin
$this->enabled = "yes"; // This can be added as an setting but for this example its forced enabled
$this->title = "VIP Shipping rate"; // This can be added as an setting but for this example its forced.
$this->init();
}
/**
* Init your settings
*
* @access public
* @return void
*/
function init() {
// Load the settings API
$this->init_form_fields(); // This is part of the settings API. Override the method to add your own settings
$this->init_settings(); // This is part of the settings API. Loads settings you previously init.
// Save settings in admin if you have any defined
add_action('woocommerce_update_options_shipping_' . $this->id, array($this, 'process_admin_options'));
}
/**
* calculate_shipping function.
*
* @access public
* @param mixed $package
* @return void
*/
public function calculate_shipping($package) {
$cost=35;
$rate = array(
'id' => $this->id,
'label' => $this->title,
'cost' => round($cost,2),
'calc_tax' => 'per_item'
);
// Register the rate
$this->add_rate($rate);
}
}
}
}
add_action('woocommerce_shipping_init', 'your_shipping_method_init');
function add_your_shipping_method($methods) {
$methods[] = 'WC_Your_Shipping_Method';
return $methods;
}
add_filter('woocommerce_shipping_methods', 'add_your_shipping_method');