Ответ 1
- Отредактируйте свой продукт.
- Нажмите "Инвентарь".
- Установите флажок "Продано индивидуально"
Мне нужно скрыть поле "количество" (где вводится количество до добавления в корзину) в Woocommerce на странице сведений о продукте и показывать только кнопку "добавить в корзину", которая затем помещала бы количество 1 в корзине. Причина в том, что я собираю количество, основанное на формах гравитации.
Самый безопасный способ - использовать встроенный крючок 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/
Пожалуйста, будьте осторожны:, используя эту опцию, делает невозможным получение продукта более одного раза в вашей корзине покупок. Затем нажмите "Добавить в корзину", чтобы предупредить, что этот продукт может быть только в вашей корзине один раз. Это может быть нежелательно для всех.
Нет необходимости использовать плагин или редактировать файл function.php, просто отметьте опцию, показанную на рисунке выше.
Существует бесплатный плагин для удаления селекторов количества, которые могут работать для вас. http://wordpress.org/extend/plugins/woocommerce-remove-quantity-fields/
.quantity, .product-quantity{display:none;}
Плагин не нужен, например, вы можете скрыть его с помощью css. Но woocommerce позволяет вам продавать только 1 продукт, без выбора, чтобы добавить больше одного и того же товара в корзину. Посмотрите настройки woocommerce- > . Это все.
Я нашел простой способ сделать это только на одной странице продукта и сохранить счетчик количества в корзине. Просто поместите следующий код в 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/
Работала лучше для меня: -
Отредактируйте продукт.
Нажмите "Инвентарь".
Установите флажок "Продано индивидуально"
Проделанная работа, простая и быстрая!
Шаблон, который вам нужно изменить, 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>
Существует крайний случай, который не обрабатывается другими ответами на этот вопрос, опция 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 );
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/
Это очень просто, в 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' ),'');