Php WooCommerce$产品->;获取库存数量();破坏购物车页面
我在WooCommerce模板中编辑了quantity-input.php模板文件,以创建自己的输入按钮。问题是我使用了$product->get_stock_quantity();在输入上设置max属性。这在除了购物车页面之外的所有页面上都可以正常工作,在购物车页面上它会破坏html并显示此错误 注意:尝试获取非对象的属性 为什么这会破坏购物车页面,而其他页面却没有 这是完整的模板代码Php WooCommerce$产品->;获取库存数量();破坏购物车页面,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我在WooCommerce模板中编辑了quantity-input.php模板文件,以创建自己的输入按钮。问题是我使用了$product->get_stock_quantity();在输入上设置max属性。这在除了购物车页面之外的所有页面上都可以正常工作,在购物车页面上它会破坏html并显示此错误 注意:尝试获取非对象的属性 为什么这会破坏购物车页面,而其他页面却没有 这是完整的模板代码 if ( $max_value && $min_value === $max_value )
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. */
$labelledby = ! empty( $args['product_name'] ) ? sprintf( __( '%s quantity', 'woocommerce' ), strip_tags( $args['product_name'] ) ) : '';
?>
<div class="quantity">
<label class="screen-reader-text" for="<?php echo esc_attr( $input_id ); ?>"><?php esc_html_e( 'Quantity', 'woocommerce' ); ?></label>
<div class="increment">
<span></span><span></span>
</div>
<?php global $product ?>
<input
type="text"
id="<?php echo esc_attr( $input_id ); ?>"
class="input-text qty text"
step="<?php echo esc_attr( $step ); ?>"
min="<?php echo esc_attr( $min_value ); ?>"
max="<?php echo $product->get_stock_quantity();?>"
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"
pattern="<?php echo esc_attr( $pattern ); ?>"
inputmode="<?php echo esc_attr( $inputmode ); ?>"
aria-labelledby="<?php echo esc_attr( $labelledby ); ?>" />
<div class="decrement">
<span></span>
</div>
</div>
<?php
}
if($max\u value&&$min\u value===$max\u value){
?>
看起来$product不包含(有效)对象
您可以通过执行以下操作来检查$product是否为对象
if (is_object($product) )
echo 'Yes a object';
else
echo 'Sorry no object';
但为什么这只发生在购物车页面上。我尝试了你的代码,但它不是一个对象,它告诉我“使用_post()时,全局$product只是WC_product类的一个对象。”也许你可以将product_id作为param发送,而不是用于获取产品。或者简单地将数量作为参数发送。