WooCommerce 배송 지역 방법 사용자 정의
<p>저는 사용자 정의 배송 지역 방법을 생성하기 위한 솔루션을 구현하는 올바른 방법을 찾으려고 몇 시간을 보냈습니다. </p>
<p>WC:7.2.2
업무 스트레스: 6.0.3</p>
<p>사이트 상태가 양호하며 권한 오류 등이 없습니다(사용 가능한 정보만 업데이트)</p>
<p>다음과 같은 다양한 소스를 사용했습니다.
https://woocommerce.github.io/woocommerce-rest-api-docs/?php#shipping-zone-methods</p>
<p>https://github.com/woocommerce/woocommerce/wiki/Shipping-Method-API#properties</p>
<p>https://gist.github.com/mikejolley/3b37b9cc19a774665f31</p>
<p>https://code.tutsplus.com/tutorials/create-a-custom-shipping-method-for-woocommerce--cms-26098</p>
<p>그 외에도 많이 있습니다. </p>
<p>기본적으로 맞춤 배송비 기능이 포함된 배송 지역 방법을 생성(플러그인)하려면 샘플 코드가 필요합니다. 우리는 WooCommerce Easy Booking을 기반으로 하며 메타데이터에 날짜가 있으므로 이를 처리하기 위해 wooCommerce 공식 프리미엄 플러그인 중 하나를 사용할 수 없습니다.</p>
<p>我最终得到了以下代码:</p>
<pre class="brush:php;toolbar:false;"><?php
if (!definated('ABSPATH')) {
출구; // 직접 접근했다면 종료
}
your_shipping_method_init() 함수
{
if (!class_exists('WC_Your_Shipping_Method')) {
WC_Your_Shipping_Method 클래스는 WC_Shipping_Method를 확장합니다.
{
/*** 배송 클래스의 생성자
*
* @접속 공개
* @return 무효*/
공개 함수 __construct()
{
$this->id = '다이어트_일_배송'; // 배송 방법 ID입니다. 고유해야 합니다.
$this->method_title = __('다이어트일당 배송'); // 관리자에 표시된 제목
$this->method_description = __('예약당 배송비'); // 관리자에 표시되는 설명
$this->enabled = "예";; // 이는 설정으로 추가될 수 있지만 이 예에서는 강제로 활성화됩니다.
//$this->title = "간편한 예약배송 하루당 배송" // 이는 설정으로 추가할 수 있지만 이 예에서는 강제입니다.
//$this->rates = array('calculate_shipping');
$this->지원 = 배열(
'배송 지역',
'인스턴스 설정',
'인스턴스 설정-모달',
);
$this->instance_form_fields =
정렬(
'제목' => 정렬(
'제목' => __('메소드 제목'),
'유형' => '텍스트',
'설명' => __('결제 시 사용자에게 표시되는 제목을 제어합니다.'),
'기본값' => __('당신의 다이어트를 위한 매일 배달'),
),
'비용' => 정렬(
'제목' => __('비용'),
'유형' => '숫자',
'설명' => __('이것은 하루 비용을 제어합니다.'),
'기본값' => 7,
)
);
$this->init();
$this->title = $this->get_option('제목');
$this->cost = $this->get_option('비용');
add_action('woocommerce_update_options_shipping_' . $this->id, array($this, 'process_admin_options'));
}/*** 설정 초기화
*
* @접속 공개
* @return 무효*/
함수 초기화()
{
// 설정 API를 로드합니다.
$this->init_form_fields();
// 정의된 설정이 있는 경우 관리자에 설정을 저장합니다.
add_action('woocommerce_update_options_shipping_' . $this->id, array($this, 'process_admin_options'));
}
함수 init_form_fields()
{
$this->form_fields = 배열(
'제목' => 정렬(
'제목' => __('메소드 제목'),
'유형' => '텍스트',
'설명' => __('결제 시 사용자에게 표시되는 제목을 제어합니다.'),
'기본값' => __('일일 다이어트 배송비'),
),
'비용' => 정렬(
'제목' => __('비용'),
'유형' => '숫자',
'설명' => __('이것은 하루 비용을 제어합니다.'),
'기본값' => 7,
)
);
}
/*** 계산_배송 기능.
* @param array $package (기본값: array())*/
공용 함수 계산_배송($패키지 = 배열())
{
//테스트용 하드코드
$shipping_number = 7;
//아마도 최종 배송비를 계산하는 방법일 것입니다.
/*
foreach ($package['contents'] as $item_id => $values) {
$_product = $values['데이터'];
$shipping_number = $shipping_number + $_product->wceb_get_product_booking_duration() * $values['수량'];
}*/
$this->add_rate(배열(
'ID' => $this->id . $this->instance_id,
'라벨' => '도스타와 포자 와와',
'비용' => $배송_번호,
)));
}
}
}
}
add_action('woocommerce_shipping_init', 'your_shipping_method_init');
함수 add_your_shipping_method($methods)
{
$methods['diet_day_shipping'] = 'WC_Your_Shipping_방법';
$method를 반환합니다.
}
add_filter('woocommerce_shipping_methods', 'add_your_shipping_method');</pre>
<p>저는 2개의 콘텐츠를 보유하고 있습니다.
<p>저는 "编辑"을 사용하여 아래의 방법을 사용합니다.</p>
<p>내 코드를 수정하는 데 도움을 줄 수 있는 사람이 있나요? </p>
<p>현재 관리자 패널에는 설정 옵션이 표시되지 않습니다. 배송 지역 방법 행이나 sgipping 설정 패널에 없습니다. </p>
<p>또한 맞춤 배송 방법을 사용하여 특정 지역에서 우편번호를 보낼 때 장바구니에 해당 우편번호에 사용할 수 있는 배송 방법이 없다고 표시됩니다.</p>