Отключение кнопки «Добавить в корзину» для определенных продуктов WooCommerce

С помощью строковой интерполяции {{}} рассматривается как текстовая строка. Вы должны использовать привязку innerHtml для получения фактического html в вашем элементе:

<div [innerHtml]="getSymbol()"></div>
1
задан LoicTheAztec 25 March 2019 в 01:47
поделиться

1 ответ

Я проверил ваш код, и он работает без проблем ... У меня нет проблемного поведения, которое вы описываете ... Итак, что-то еще создает проблемы :

Сначала вам нужно будет сделать резервное копирование базы данных ... Затем вам следует попытаться:

  1. Проверить, есть ли в других ваших настройках отключение Ajax, добавленное в корзину, и появление этого сообщения. Попробуйте прокомментировать другие настройки, чтобы найти виновного.
  2. Попробуйте отключить все сторонние плагины, связанные с Woocommerce (кроме Woocommerce). Если проблема исчезла, включите их один за другим, чтобы найти виновных.

Проблема может быть и из темы.


Теперь, после Woocommerce 3 и внедрения CRUD Objects , ваш код немного устарел.

Вот пересмотренная и улучшенная версия кода (для Woocommerce 3+):

// Add a custom field in the Product data's General tab (for simple products).
add_action( 'woocommerce_product_options_general_product_data', 'add_general_product_data_custom_field' );
function add_general_product_data_custom_field() {
    woocommerce_wp_checkbox( array( // Checkbox.
        'id'            => '_not_ready_to_sell',
        'label'         => __( 'Call to Order', 'woocommerce' ),
        'wrapper_class' => 'show_if_simple',
    ) );
}

// Save custom field value
add_action( 'woocommerce_admin_process_product_object', 'save_general_product_data_custom_field', 10, 1 );
function save_general_product_data_custom_field( $product ) {
    $product->update_meta_data( '_not_ready_to_sell', isset( 

Я проверил ваш код, и он работает без проблем ... У меня нет проблемного поведения, которое вы описываете ... Итак, что-то еще создает проблемы :

Сначала вам нужно будет сделать резервное копирование базы данных ... Затем вам следует попытаться:

  1. Проверить, есть ли в других ваших настройках отключение Ajax, добавленное в корзину, и появление этого сообщения. Попробуйте прокомментировать другие настройки, чтобы найти виновного.
  2. Попробуйте отключить все сторонние плагины, связанные с Woocommerce (кроме Woocommerce). Если проблема исчезла, включите их один за другим, чтобы найти виновных.

Проблема может быть и из темы.


Теперь, после Woocommerce 3 и внедрения CRUD Objects , ваш код немного устарел.

Вот пересмотренная и улучшенная версия кода (для Woocommerce 3+):

[110]

Код входит в файл function.php вашей активной дочерней темы (или активной темы). Это может сработать.

POST['_not_ready_to_sell'] ) ? 'yes' : 'no' ); } // Make not purchasable, products with '_not_ready_to_sell' meta data set to "yes" (for simple products) add_filter( 'woocommerce_is_purchasable', 'filter_woocommerce_set_purchasable', 10, 2); function filter_woocommerce_set_purchasable( $purchasable, $product ) { return 'yes' === $product->get_meta( '_not_ready_to_sell' ) && $product->is_type('simple') ? false : $purchasable; } // Change button text to "Call to Order" for simple products not purchasable. add_filter( 'woocommerce_product_add_to_cart_text', 'filter_product_add_to_cart_text', 10, 2 ); function filter_product_add_to_cart_text( $button_text, $product ) { if ( 'yes' === $product->get_meta( '_not_ready_to_sell' ) && $product->is_type('simple') ) { $button_text = __( 'Call to Order', 'woocommerce' ); } return $button_text; }

Код входит в файл function.php вашей активной дочерней темы (или активной темы). Это может сработать.

0
ответ дан LoicTheAztec 25 March 2019 в 01:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: