【问题标题】:PHP get "min, max, step and value" variables from plugin to quantity box WoocommercePHP 从插件到数量框 Woocommerce 获取“最小值、最大值、步长和值”变量
【发布时间】:2021-05-25 18:16:13
【问题描述】:

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

plugin code

woocommerce.php from theme

插件代码:

    <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>

来自主题的 woocommerce.php 代码:

            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;

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    Woocommerce Advanced Quantity plugin 是付费插件,因此我无法检查其代码。但是,我认为它必须以某种方式将最小值、最大值和其他此类值存储在数据库中。

    您从插件共享的代码显示提到了$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">';
    

    再次,这是假设一个值已经是added,选项名称为waq_min_value

    TLDR:插件必须将值存储在数据库中。找出它的存储位置,它使用的名称。有了这些信息,您就可以获取数据并在您的主题中使用它。

    【讨论】:

    • 非常感谢您的帮助。我发现此信息存储在 wp_postmeta 表中。在里面我有一个值的以下信息:|元ID | post_id |元密钥 |元值 | -------------------------------------------------- | 902 | 72 | _高级数量值 | 789789 |我为标准值设置的值是 789789。你知道我如何在代码中设置来获取这个值吗?再次感谢!! :)
    • 这是结果图片:pasteboard.co/K3I9dPY.png
    • 我无法访问粘贴板链接,它返回 504 错误。由于您需要的信息存储在wp_postmeta 表中,您应该能够使用get_post_meta 函数检索它。请务必在 WP.org 和 SO 上查看此功能的示例用法,以便更好地理解它。
    猜你喜欢
    • 2021-12-25
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2020-11-06
    相关资源
    最近更新 更多