PHP 从插件到数量框获取"最小、最大、步长和值"变量 WooCommerce



我有Wooccommerce Advanced Quantity插件,它可以为每个产品提供不同的最小、最大、递增步数和默认数量。我的新主题在商店页面上有数量框,它没有从插件中获取值。它被设置为默认最小值:1步:1值:1。我需要调整主题,以便始终从插件中获取这些值。有人能帮我吗?

插件代码

来自主题的woommerce.php

来自插件的代码:

<div class="plus-minus-button">
<div class="quantity <?php echo !is_single($product_id) ? 'smaller-minus-plus' : ''; ?> <?php echo is_cart() ? 'on-cart-plus-minus-button' : ''; ?>">
<input type='button' value='-' class='woo-advanced-minus'/>
<input type="text" id="qty" class="plus-minus-input qty" step="<?php echo esc_attr($step); ?>"
min="<?php echo esc_attr($min_value); ?>" max="<?php echo esc_attr($max_value); ?>"
name="<?php echo esc_attr($input_name); ?>" value="<?php echo esc_attr($input_value); ?>"
title="<?php echo esc_attr_x('Quantity', 'woo-advanced-qty') ?>"
<?php echo isset($step_intervals) ? 'data-step_intervals="' . esc_attr(json_encode($step_intervals)) . '"' : ''; ?>
pattern="<?php echo esc_attr($pattern); ?>" inputmode="<?php echo esc_attr($inputmode); ?>" data-product_id="<?php echo esc_attr($product_id); ?>"/>
<input type='button' value='+' class='woo-advanced-plus'/>
</div>
</div>

来自主题的代码:

if(ot_get_option('groci_quantity_box') == 'on'){
if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) {
wp_enqueue_script( 'groci-plus-minus'); 
$output .= '<div class="plus-minus">';
$output .= '<div class="cart-plus-minus">';
$output .= '<div class="dec qtybutton">-</div>';

$output .= '<input type="text" class="qty-archive" step="5" min="1" name="quantity" value="1" title="Qty" size="4" inputmode="numeric">';

$output .= '<div class="inc qtybutton">+</div>';
$output .= '</div>';
$output .= '</div>';
}
}
$output .= groci_add_to_cart_button();
$output .= '</div>';
$output .= '</div>';


}
$output_escaped = $output;

echo $output_escaped;

Wooccommerce Advanced Quantity插件是一个付费插件,所以我无法检查它的代码。然而,我认为它必须以某种方式将min、max和其他这样的值存储在数据库中。

您从插件中共享的代码中提到了$min_value,但没有说明值是如何分配给它的

大多数时候,我们使用get_option((函数从WordPress数据库中获取值。

假设一个最小值存储在数据库中,选项名称为waq_min_value,那么它将使用get_option()提取,如下所示:

$min_value = get_option( 'waq_min_value' );

然后你就可以在你的主题中使用它了,比如:

$min_value = get_option( 'waq_min_value' );
$output .= '<input type="text" class="qty-archive" step="5" min="'. $min_value .'" name="quantity" value="1" title="Qty" size="4" inputmode="numeric">';

同样,这是在假设已经添加了具有选项名称waq_min_value的值的情况下进行的。

TLDR:插件必须将值存储在数据库中。找出它存储在哪里,使用什么名称。有了这些信息,你就可以获取数据并将其用于你的主题。