【问题标题】:How to select a product quantity on one page and pass value to cart.php如何在一页上选择产品数量并将值传递给 cart.php
【发布时间】:2012-07-29 14:06:38
【问题描述】:

假设在首页您有一个促销部分,可让您增加/减少所需产品的数量,然后它会自动为您计算价格。我添加了一个带有

的 href 的按钮
 <?php echo get_home_url(); ?>/shop/?add-to-cart=9

将单个产品添加到您的购物车,并带您到 cart.php,您可以在其中增加或减少数量。

我可以做什么,或者我可以采取什么方向,将首页数量传递给 cart.php 数量?

比如我的首页代码是这样的:

http://jsfiddle.net/7BDwP/811/

【问题讨论】:

    标签: php cart woocommerce


    【解决方案1】:

    它唯一的支持是:(通过 URL)

    ?add-to-cart=variation&product_id=1100
    

    所以你需要制作一个隐藏的表单元素,叫做 Qty:

    <input name="quantity" data-min="1" data-max="0" value="1" size="4" title="Qty" class="input-text qty text" maxlength="12">
    

    但既然你有不止一个。你会做的

    <form action="/shop/?add-to-cart=variation&amp;product_id=1100" class="variations_form cart" method="post" enctype="multipart/form-data">
    
    Size
    <select>
    <option value="">Choose an option…</option>
    <option value="large">Large</option>
    <option value="medium">Medium</option>
    <option value="small" selected="selected">Small</option>
    <option value="x-large">X-Large</option>
    </select>
    
    Colour
    <select id="pa_colour" name="attribute_pa_colour" style="opacity:0">
    <option value="">Choose an option…</option>
    <option value="black" selected="selected">Black</option>
    </select>
    
    <input type="hidden" name="variation_id" value="1104">
    
    <input name="quantity" data-min="1" data-max="0" value="1"
    size="4" title="Qty" class="input-text qty text" maxlength="12">
    
    <button type="submit" class="button alt">Add to cart</button>
    <input type="hidden" name="product_id" value="1100"></div>
    
    </form>
    

    只要确保您的IdsNames 是唯一的,创建一个更新Qty 值的jQuery Ajax 字段。您只能通过表单方法提交,除非您编辑核心 PHP 值并允许 REQUEST 而不是 GET

    【讨论】:

      【解决方案2】:
      $(document).ready(function(){
      
          var base_url = <?php echo get_home_url(); ?>;
      
          $('#product').change(function(){
              $('#result').text($(this).val() * 25.99);
              // add this to change the href.  Should really use an ID selector but for your example this works
              $('a').attr('href', base_url+'/shop/?add-to-cart=9&qty='+$('#product').val());
          });    
      });
      

      【讨论】:

      • 感谢您的回答。添加“&qty=X”似乎根本不会影响cart.php,即使我手动添加。
      • 好像少了一个步骤。我错误地认为 href 指向的是 cart.php。您还需要将 $_REQUEST['qty'] 从 (index.php?) 脚本调用的任何页面传递给 cart.php。在该页面中查找 add-to-cart 变量以查看它是如何传递的。
      猜你喜欢
      • 1970-01-01
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      相关资源
      最近更新 更多