我想知道“ $ Instance_id = 0”的重要性是什么,为什么在woocommerce文档中__construct()中的“ 0”出现$ instance_id = 0,但不起作用。
我已经尝试过几次__construct()和__construct($ Instance_id = 0) 结果是:是__contruct()工作(不太好),在前端,但是几乎是神奇的,因为当我想添加这种运输方法时,它不会出现在下拉列表中。但在前端显示运费。 当我放__construct($ Instance_id = 0)时不显示设置字段(在wp-admin / woocommerce / settings / shipping中)。 但是,如果我设置__construct($ Instance_id = 1)或任何其他数字,则几乎所有工作,设置字段和下拉列表都会显示此方法用于将运输方法分配给该区域,但是即使我没有找到该区域的任何方法,让其为空(表示无处不在)。另外,如果我在代码中设置了固定价格,例如:
$cost= 100;
// send the final rate to the user.
$this->add_rate( array(
'id' => $this->id,
'label' => $this->title,
'cost' => $cost
));
在前端:“没有可用的送货方式。请确保您的地址输入正确,或者如果需要任何帮助,请与我们联系。”
感谢您的帮助
*请注意,主体文件中包含:
if ( ! defined( 'WPINC' ) ) {
die;
}
/**
* Check if WooCommerce is active
*/
$active_plugins = apply_filters( 'active_plugins', get_option(
'active_plugins' ) );
if ( in_array( 'woocommerce/woocommerce.php', $active_plugins) ) {
add_filter( 'woocommerce_shipping_methods', 'add_fast_delivery_shipping_method' );
function add_fast_delivery_shipping_method( $methods ) {
$methods['fast_delivery_shipping_method'] = 'WC_Fast_Delivery_Shipping_Method';
return $methods;
}
add_action( 'woocommerce_shipping_init', 'fast_delivery_shipping_method_init' );
function fast_delivery_shipping_method_init(){
require_once 'class-fast-delivery-shipping-method.php';
}
}