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 ... duct-types
Ответить

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

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

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

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

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