gpt4 book ai didi

php - 如何在 WooCommerce 3 中添加自定义工作送货方式

转载 作者:可可西里 更新时间:2023-11-01 12:30:40 24 4
gpt4 key购买 nike

我已经成功创建了一种新的送货方式并为其提供了对送货区域的支持。但是,当我从下拉列表中选择方法以将其添加到区域时,它并没有出现在“选定方法列表”中。

我记录了一个screencast gif演示:

screencast gif

我一辈子都弄不明白为什么它不起作用。如果我选择其中一种标准方法 ( Screencast GIF ),效果很好

有人知道这里发生了什么以及如何让它工作吗?

这是我的代码 from this official thread: Shipping Method API :

if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {

function request_a_shipping_quote_init() {
if ( ! class_exists( 'WC_Request_Shipping_Quote_Method' ) ) {
class WC_Request_Shipping_Quote_Method extends WC_Shipping_Method {
/**
* Constructor for your shipping class
*
* @access public
* @return void
*/
public function __construct() {
$this->id = 'request_a_shipping_quote'; // Id for your shipping method. Should be uunique.
$this->method_title = __( 'Request a Shipping Quote' ); // Title shown in admin
$this->method_description = __( 'Shipping method to be used where the exact shipping amount needs to be quoted' ); // Description shown in admin

$this->title = "Request a Shipping Quote"; // This can be added as an setting but for this example its forced.

$this->supports = array(
'shipping-zones'
);

$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' ) );
}

function init_form_fields() {

$this->form_fields = array(

'enabled' => array(
'title' => __( 'Enable', 'dc_raq' ),
'type' => 'checkbox',
'description' => __( 'Enable this shipping method.', 'dc_raq' ),
'default' => 'yes'
),

'title' => array(
'title' => __( 'Title', 'dc_raq' ),
'type' => 'text',
'description' => __( 'Title to be displayed on site', 'dc_raq' ),
'default' => __( 'Request a Quote', 'dc_raq' )
),

);

}

/**
* calculate_shipping function.
*
* @access public
*
* @param mixed $package
*
* @return void
*/

public function calculate_shipping( $packages = array() ) {
$rate = array(
'id' => $this->id,
'label' => $this->title,
'cost' => '0.00',
'calc_tax' => 'per_item'
);

// Register the rate
$this->add_rate( $rate );
}
}
}
}

add_action( 'woocommerce_shipping_init', 'request_a_shipping_quote_init' );

function request_shipping_quote_shipping_method( $methods ) {
$methods['request_shipping_quote_shipping_method'] = 'WC_Request_Shipping_Quote_Method';

return $methods;
}

add_filter( 'woocommerce_shipping_methods', 'request_shipping_quote_shipping_method' );
}

最佳答案

“woocommerce_shipping_methods”上的方法键应与运输方式 ID 匹配

在你的情况下:你应该改变

function request_shipping_quote_shipping_method( $methods ) {
$methods['request_shipping_quote_shipping_method'] = 'WC_Request_Shipping_Quote_Method';

return $methods;
}

add_filter( 'woocommerce_shipping_methods', 'request_shipping_quote_shipping_method' );

收件人:

function request_shipping_quote_shipping_method( $methods ) {
$methods['request_a_shipping_quote'] = 'WC_Request_Shipping_Quote_Method';

return $methods;
}

add_filter( 'woocommerce_shipping_methods', 'request_shipping_quote_shipping_method' );

关于php - 如何在 WooCommerce 3 中添加自定义工作送货方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45177226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com