Функция предварительного заказа WoocommercePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Функция предварительного заказа Woocommerce

Сообщение Anonymous »

На своем сайте WordPress я использую плагин WooCommerce. Я хочу добавить функцию предварительного заказа в WooCommerce без плагина. Что должна делать функция предзаказа?
Товары на сайте разделены на переменные по атрибутам. Это означает, что для каждой переменной установлена ​​отдельная стоимость запаса, но все они находятся в одном товаре.
  • При выборе переменной, которой нет на складе , кнопка «Добавить в корзину» должна измениться на предварительный заказ.
  • После того, как переменная, которой нет в наличии, будет изменена на предварительный заказ, должна быть добавлена ​​возможность ее покупки. В WooCommerce товары, которых нет в наличии, нельзя добавить в корзину и нельзя купить.
  • Кнопка «Добавить в корзину» появляется, даже если переменные товары внутри товара отсутствуют на складе.
  • Невозможно купить товар, которого нет на складе.
Можно ли это сделать?
Я пробовал разные плагины, но ни один из них не имеет возможности автоматически предзаказ товаров, которых нет в наличии. И проблема с ними в том, что они не работают с переменными товарами.
По той же подсказке я получил из ChatGPT следующий код:

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

add_filter('woocommerce_product_single_add_to_cart_text', 'custom_add_to_cart_button_text');
add_filter('woocommerce_product_add_to_cart_text', 'custom_add_to_cart_button_text');

function custom_add_to_cart_button_text($text) {
global $product;

if ($product->is_type('variable')) {
$variations = $product->get_children();

foreach ($variations as $variation_id) {
$variation = wc_get_product($variation_id);

if ($variation->get_stock_quantity() === 0 && isset($_GET['attribute'])) {
return __('Pre-Order', 'woocommerce');
}
}
} else {
if ($product->get_stock_quantity() === 0) {
return __('Pre-Order', 'woocommerce');
}
}

return __('Add to Cart', 'woocommerce');
}

add_filter('woocommerce_variation_is_purchasable', 'enable_pre_order_for_out_of_stock_variation', 10, 2);

function enable_pre_order_for_out_of_stock_variation($purchasable, $variation) {
if ($variation->get_stock_quantity() === 0) {
return true;
}

return $purchasable;
}

add_filter('woocommerce_variation_is_in_stock', 'enable_out_of_stock_variation_for_cart', 10, 2);

function enable_out_of_stock_variation_for_cart($is_in_stock, $variation) {
if ($variation->get_stock_quantity() === 0) {
return true;
}

return $is_in_stock;
}
Но и с этим кодом не сработало. У меня есть ошибки в коде.

Подробнее здесь: https://stackoverflow.com/questions/793 ... r-function
Ответить

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

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

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

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

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