E
E
Evgeniy2019-08-05 19:55:46
WooCommerce
Evgeniy, 2019-08-05 19:55:46

How to output this function to a specific location?

<?php
/**
 * Product quantity inputs
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/global/quantity-input.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see     https://docs.woocommerce.com/document/template-structure/
 * @package WooCommerce/Templates
 * @version 3.6.0
 */

defined( 'ABSPATH' ) || exit;

if ( $max_value && $min_value === $max_value ) {
  ?>
  <div class="quantity hidden">
    <input type="hidden" id="<?php echo esc_attr( $input_id ); ?>" class="qty" name="<?php echo esc_attr( $input_name ); ?>" value="<?php echo esc_attr( $min_value ); ?>" />
  </div>
  <?php
} else {
  /* translators: %s: Quantity. */
  $label = ! empty( $args['product_name'] ) ? sprintf( __( '%s quantity', 'woocommerce' ), wp_strip_all_tags( $args['product_name'] ) ) : __( 'Quantity', 'woocommerce' );
  ?>
  <div class="quantity">
    <label class="screen-reader-text" for="<?php echo esc_attr( $input_id ); ?>"><?php echo esc_attr( $label ); ?></label>
    <input
      type="number"
      id="<?php echo esc_attr( $input_id ); ?>"
      class="<?php echo esc_attr( join( ' ', (array) $classes ) ); ?>"
      step="<?php echo esc_attr( $step ); ?>"
      min="<?php echo esc_attr( $min_value ); ?>"
      max="<?php echo esc_attr( 0 < $max_value ? $max_value : '' ); ?>"
      name="<?php echo esc_attr( $input_name ); ?>"
      value="<?php echo esc_attr( $input_value ); ?>"
      title="<?php echo esc_attr_x( 'Qty', 'Product quantity input tooltip', 'woocommerce' ); ?>"
      size="4"
      inputmode="<?php echo esc_attr( $inputmode ); ?>" />
  </div>
  <?php
}

I want to display this code in the product card, but I don't know how. Can you suggest?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
F
freelion93, 2019-08-05
@freelion93

More specifically, what do you mean by output?

A
Anton R., 2019-08-05
@anton_reut

It seems to me that you crookedly corrected a piece of code, and use the insertion of the php code into the message, it's clearer.

P
Pychev Anatoly, 2019-08-06
@pton

What you showed is the output template of the quantity input field (input element)
The template can be called with the usual

wc_get_template( 'global/quantity-input.php', $args );
. Actually, that's how it's called. But it needs a certain list of data to work.
The standard call for this template is here.
In general, all you need to do is call the function that calls the template.
do_action( 'woocommerce_before_add_to_cart_quantity' );

    woocommerce_quantity_input( array(
      'min_value'   => apply_filters( 'woocommerce_quantity_input_min', $product->get_min_purchase_quantity(), $product ),
      'max_value'   => apply_filters( 'woocommerce_quantity_input_max', $product->get_max_purchase_quantity(), $product ),
      'input_value' => isset( $_POST['quantity'] ) ? wc_stock_amount( wp_unslash( $_POST['quantity'] ) ) : $product->get_min_purchase_quantity(), // WPCS: CSRF ok, input var ok.
    ) );

    do_action( 'woocommerce_after_add_to_cart_quantity' );

For examples of calling this function and the hooks that frame it, see product type templates,
for example, woocommerce/templates/single-product/add-to-cart/simple.php

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question