Ошибка в Woocommerce при попытке создать грузовой плагин - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь разработать специальный модуль для расчета фрахта в Woocommerce, однако я не могу вернуть набранный почтовый индекс клиента, чтобы активировать мои формулы.В этом примере я тестирую только базовую формулу, но она вызывает ошибку «Неустранимая ошибка: вызов неопределенного метода Test_Shipping_Br :: get_items_needing_shipping () в ... \ wp-content \ plugins \ woocommerce \ includes \ class-».wc-cart.php в строке 1316 "при переходе в корзину после добавления товара.

Мне нужно получить почтовый индекс, который набрал клиент, и информацию о пакете в корзине (количество, вес, рост,ширина, длина) и на основе этой информации я разработаю конкретную формулу.Я запустил базовую формулу, просто пытаясь получить zip, но она уже вызвала ошибку, о которой я сообщал выше.

<?php
/*
Plugin Name: Test Shipping
Plugin URI: 
Description: 
Version: 1.0.0
Author: Wendell Christian
Author URI: 
*/

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

function Test_Shipping_Br_init() {
    if ( ! class_exists( 'Test_Shipping_Br' ) ) {
        class Test_Shipping_Br extends WC_Shipping_Method {

            public function __construct() {
                $this->id                 = 'Test_Shipping_Br'; 
                $this->method_title       = __( 'Test Shipping Brazil' );  
                $this->method_description = __( '' ); 

                $this->enabled            = "yes"; 
                $this->title              = "Test Shipping Brazil"; 

                $this->init();
            }

            function init() {
                $this->init_form_fields();
                $this->init_settings();

                add_action( 'woocommerce_update_options_shipping_' . $this->id, array( $this, 'process_admin_options' ) );
            }


            public function calculate_shipping( $package ) {

                $array = WC_Cart::get_shipping_packages();                  
                $postcode = $array[0]['destination']['postcode'];


                if ($postcode >= 75960000 && $postcode <= 75969999)
                {
                    $cost = 17;

                }


                $rate = array(
                    'id' => $this->id,
                    'label' => $this->title,
                    'cost' => round($cost,2),
                    'calc_tax' => 'per_order'
                );

                $this->add_rate( $rate );
            }
        }
    }
}

add_action( 'woocommerce_shipping_init', 'Test_Shipping_Br_init' );

function add_Test_Shipping_Br( $methods ) {
    $methods[] = 'Test_Shipping_Br';
    return $methods;
}

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

1 Ответ

0 голосов
/ 11 июля 2019

Кажется, что get_items_needing_shipping отсутствует в вашем примере плагина.

И это также означает ошибку.

Функция существует?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...