Мне нужно скрыть поле "количество" (где вводится количество до добавления в корзину) в Woocommerce на странице сведений о продукте и показывать только кнопку "добавить в корзину", которая затем помещала бы количество 1 в корзине. Причина в том, что я собираю количество, основанное на формах гравитации.
Как отключить поле количества на странице сведений о продукте в woocommerce?
Ответ 1
- Отредактируйте свой продукт.
- Нажмите "Инвентарь".
- Установите флажок "Продано индивидуально"
Ответ 2
Самый безопасный способ - использовать встроенный крючок WordPress или фильтр
/**
* @desc Remove in all product type
*/
function wc_remove_all_quantity_fields( $return, $product ) {
return true;
}
add_filter( 'woocommerce_is_sold_individually', 'wc_remove_all_quantity_fields', 10, 2 );
Вы также можете удалить Селектор количества в другом типе продукта, вы можете найти наш более здесь http://www.sutanaryan.com/how-to-remove-product-quantity-selectors-woocommerce/
Пожалуйста, будьте осторожны:, используя эту опцию, делает невозможным получение продукта более одного раза в вашей корзине покупок. Затем нажмите "Добавить в корзину", чтобы предупредить, что этот продукт может быть только в вашей корзине один раз. Это может быть нежелательно для всех.
Ответ 3
Нет необходимости использовать плагин или редактировать файл function.php, просто отметьте опцию, показанную на рисунке выше.
Ответ 4
Существует бесплатный плагин для удаления селекторов количества, которые могут работать для вас. http://wordpress.org/extend/plugins/woocommerce-remove-quantity-fields/
Ответ 5
.quantity, .product-quantity{display:none;}
Ответ 6
Плагин не нужен, например, вы можете скрыть его с помощью css. Но woocommerce позволяет вам продавать только 1 продукт, без выбора, чтобы добавить больше одного и того же товара в корзину. Посмотрите настройки woocommerce- > . Это все.
Ответ 7
Я нашел простой способ сделать это только на одной странице продукта и сохранить счетчик количества в корзине. Просто поместите следующий код в functions.php
add_action( 'wp_head', 'quantity_wp_head' );
function quantity_wp_head() {
if ( is_product() ) {
?>
<style type="text/css">.quantity, .buttons_added { width:0; height:0; display: none; visibility: hidden; }</style>
<?php }
}
Вы можете проверить документацию по woocommerce здесь: http://docs.woothemes.com/document/remov-product-content-based-on-category/
Ответ 8
Работала лучше для меня: -
Отредактируйте продукт.
Нажмите "Инвентарь".
Установите флажок "Продано индивидуально"
Проделанная работа, простая и быстрая!
Ответ 9
Шаблон, который вам нужно изменить, single-product/add-to-cart/variation-add-to-cart-button.php
.
Итак, вы можете просто скопировать этот шаблон в свою тему и отредактировать его, чтобы удалить поле количества. Это станет чем-то вроде:
<?php
/**
* Single variation cart button
*
* @see http://docs.woothemes.com/document/template-structure/
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.5.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
global $product;
?>
<div class="woocommerce-variation-add-to-cart variations_button">
<button type="submit" class="single_add_to_cart_button button alt"><?php echo esc_html( $product->single_add_to_cart_text() ); ?></button>
<input type="hidden" name="add-to-cart" value="<?php echo absint( $product->id ); ?>" />
<input type="hidden" name="product_id" value="<?php echo absint( $product->id ); ?>" />
<input type="hidden" name="variation_id" class="variation_id" value="0" />
</div>
Ответ 10
Существует крайний случай, который не обрабатывается другими ответами на этот вопрос, опция woocommerce "продается индивидуально" эффективно удаляет ввод количества, но не позволяет одному и тому же продукту добавляться в корзину несколько раз
В случае использования, когда у вас есть продукт с настраиваемыми атрибутами, когда вы не хотите, чтобы количество было редактируемым, но вы все же хотите позволить пользователю добавить тот же продукт в корзину с другими атрибутами, тогда "продается отдельно" опция не сработает
В этом случае вам нужен этот фильтр
add_filter( 'woocommerce_cart_item_quantity', function ( $qty, $item_key, $item ) {
if ( ! empty( $item['custom_data'] ) ) { //Here check for your custom attribute
return sprintf( '1 <input type="hidden" name="cart[%s][qty]" value="1" />', $item_key );
}
return $qty;
}, 10, 3 );
Ответ 11
add_filter( 'woocommerce_is_sold_individually', 'baztro_wc_remove_all_quantity_fields', 10, 2 );
function baztro_wc_remove_all_quantity_fields( $return, $product ) {
switch ( $product->product_type ) :
case "variable":
return true;
break;
case "grouped":
return true;
break;
case "external":
return true;
break;
default: // simple product type
return true;
break;
endswitch;
}
Я предпочитаю вариант инвентаризации - лучший способ сделать это, и некоторые методы здесь http://www.baztro.com/hide-quantity-input-field-from-product-page-woocommerce/
Ответ 12
Это очень просто, в woocommerce\includes\abstracts\abstract-wc-product.php
найти файл abstract-wc-product.php
в woocommerce
Найдите ниже код на странице
$availability = sprintf( __( '%s in stock', 'woocommerce' ), $this->get_total_stock() );
замените этот код на
$availability = sprintf( __( '%s in stock', 'woocommerce' ),'');