Создайте собственный метод для всех существующих типов продуктов в WooCommerce.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Создайте собственный метод для всех существующих типов продуктов в WooCommerce.

Сообщение Anonymous »

Я хочу создать собственный метод, который можно использовать для любого класса WC_Product, чтобы я мог использовать $product->get_lead_time(); в любое время, когда у меня есть доступный объект продукта. В настоящее время он работает для простых продуктов, но я не могу получить метод, доступный для WC_Product_Variable.
Вот мой текущий класс:

Код: Выделить всё

class WC_Product_Custom extends WC_Product {

/**
* Constructor for the product type to extend the object.
*
* @param int|WC_Product|object $product Product ID or object.
*/
public function __construct($product = 0) {
parent::__construct($product);

// Define your custom properties and their default values.
// These will be added to the protected $data array.
$this->data['lead_times'] = [];
}

/**
* Get the value of lead_times.
*
* @return array
*/
public function get_lead_time() {
return $this->product_lead_type($this->id);
}

/**
* Set the value of lead_times.
*
* @param array $value The values to set.
*         - @param int min_delivery_days
*         - @param int max_delivery_days
*/
public function set_lead_time($value = null) {
if (!$value) {
$value = $this->product_lead_type($this->id);
}
$this->set_prop('lead_times', $value);
}

private function product_lead_type($product_id = null) {

return [
'min_delivery_days'    => 1,
'max_delivery_days'    => 10
];

}
}

function register_custom_product_type($classname, $product_type, $product_id) {
if ('simple' === $product_type) {
$classname = 'WC_Product_Custom';
}
return $classname;
}

add_filter('woocommerce_product_class', 'register_custom_product_type', 10, 3);
Я пытался добавить переменную в функцию регистрации пользовательского типа продукта, но это просто превращает все варианты продуктов в простые продукты.
Я также пытался создать дублирующий класс и расширить WC_Product_Variable, но это не сделало его доступным в возвращаемом объекте. Я просмотрел документацию и не нашел похожих тем по этому поводу.
Как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/797 ... oocommerce
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»