【问题标题】:how to echo all products in shopping cart to paypal如何将购物车中的所有产品回显到贝宝
【发布时间】:2012-02-02 22:10:39
【问题描述】:

我只是在学习 php 的基本知识,并且正在为一个 uni 项目建立一个电子商务网站,我已经完成了整个项目并通过 paypal 设置付款,我已经通过一些教程完成了。

当我转移到贝宝时,我想显示;订单摘要中购物车中每件商品的商品名称、价格和数量。

在其当前状态http://pastie.org/3127790 中,代码仅在paypal 的订单摘要中显示购物车中的顶部商品,我想我需要实现一个foreach 循环来告诉代码回显购物车中的所有行,但我不确定究竟要循环什么以及如何循环。

任何帮助将不胜感激!

提前致谢,迈克尔

代码sn-p

      <?php

        $sql = "SELECT * FROM podcasts WHERE id_podcasts IN (";
          foreach ($_SESSION['cart'] as $id => $value){
            $sql .= $id . ",";  
          }
          $sql = substr($sql,0,-1).") ORDER BY name ASC";
          $query = mysql_query($sql);
          $total_price = 0;
          if(!empty($query)){
          while($row = mysql_fetch_array($query)){
            $subtotal = $_SESSION['cart'][$row['id_podcasts']]['quantity']*$row['price'];
            $total_price += $subtotal;
            ?>

            <?php
            $ppname = $row['name'];
            $_SESSION['cart'][$row['id_podcasts']]['name'] = $row['name'];
            $ppquantity = $_SESSION['cart'][$row['id_podcasts']]['quantity'];
            $ppprice= $row['price'];
            ?>
              <tr>
                <td><?php echo $row['name'];?></td>
                <td><?php echo $_SESSION['cart'][$row['id_podcasts']]['quantity'];?></td>
                <td><?php echo "&pound;" . $row['price'];?></td>
                <td><?php echo"&pound;" .  $_SESSION['cart'][$row['id_podcasts']]['quantity']*$row['price'];?></td>
              </tr>
            <?php
          } }
          ?>


  <tr>
    <td></td>
    <td></td>
    <td><span>Total Price:</td></span>
    <td><span><?php echo"&pound;" .  $total_price;?></td></span>
  </tr>
</table>
</div>
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="payme_1321908135_biz@immbudden.com"> <!-- change to your paypal address -->
<input type="hidden" name="quantity" value="<?php echo $ppquantity;?>"> <!-- do not change, since you refer to it all via the database -->
<input type="hidden" name="item_name" value="<?php echo $ppname;?>">
<input type="hidden" name="amount" value="<?php echo $ppprice;?>"> <!-- change here -->
<input type="hidden" name="shipping" value="0.00">
<input type="hidden" name="currency_code" value="GBP">
<input type="hidden" name="custom" value="<?php echo $_SESSION['emailaddress'];?>"> <!-- if you store their purchase in a database, reference the database number here -->
<input type="hidden" name="return" value="http://shop.residencyradio.com/success.php">
<span class="input_btn"><input type="submit" name="purchase" value="Purchase" ></span>
</form>

【问题讨论】:

  • 您能否编辑并粘贴到您需要帮助的确切部分。
  • 嗨,安迪,检查我原来问题的编辑,我已经在那里添加了代码。感谢您的回复!

标签: php mysql foreach paypal shopping-cart


【解决方案1】:

我只回答你的问题。我不确定您所有代码的有效性。
我对您粘贴的一些代码进行了一些更改:

<?php
$output_paypal = ''; // container for output for paypal form
$total_items = 0;

if ( ! empty($query))
{
    while ($row = mysql_fetch_array($query))
    {
        $subtotal = $_SESSION['cart'][$row['id_podcasts']]['quantity'] * $row['price'];
        $total_price += $subtotal;

        $ppname = htmlspecialchars($row['name']);
        $_SESSION['cart'][$row['id_podcasts']]['name'] = $row['name']; // this assigment seems not useful
        $ppquantity = $_SESSION['cart'][$row['id_podcasts']]['quantity'];
        $ppprice = $row['price'];

        $total_items ++;

        $output_paypal .= <<<EOM
<input type="hidden" name="item_name_{$total_items}" value="$ppname">
<input type="hidden" name="quantity_{$total_items}" value="$ppquantity">
<input type="hidden" name="amount_{$total_items}" value="$ppprice">
EOM; // heredoc syntax (may not be any spaces or tabs before or after the semicolon.)
        ?>
        <tr>
            <td><?php echo $ppname; ?></td>
            <td><?php echo $ppquantity; ?></td>
            <td><?php echo "&pound;" . $ppprice; ?></td>
            <td><?php echo"&pound;" . $ppquantity * $ppprice; ?></td>
        </tr>
        <?php
    }
}
?>


<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
    <input type="hidden" name="cmd" value="_xclick">
    <input type="hidden" name="business" value="payme_1321908135_biz@immbudden.com">

    <?php echo $output_paypal; ?>

    <input type="hidden" name="shipping" value="0.00">
    <input type="hidden" name="currency_code" value="GBP">
    <input type="hidden" name="custom" value="<?php echo $_SESSION['emailaddress']; ?>">
    <input type="hidden" name="return" value="http://shop.residencyradio.com/success.php">
    <span class="input_btn"><input type="submit" name="purchase" value="Purchase" ></span>
</form>

【讨论】:

  • 嗨,伙计,感谢您的回复,我知道有些代码可能不是那么有效,我正处于学习语言的早期阶段,对此深表歉意。您创建的代码几乎可以工作,但是在贝宝中,它将所有项目捆绑在一起作为一个项目,而不是在产品摘要上显示每个单独的项目。您可以通过转到shop.residencyradio.com 并将一些商品添加到购物车并进入付款页面来准确了解我的意思。谢谢!
  • 刚刚在那里尝试过,但这次它没有输出任何东西:S 新版本 shop.residencyradio.com
  • @michael 真的吗? $output_paypal 填充在 while 循环中。然后在表单中“回显”。无论如何,我展示了满足您要求的正确方法。只是玩它。祝你好运和坚持! o/\o
  • 是的,不知道为什么,因为通读它我可以理解它应该填充它:/ 我会继续看它,看看我是否可以用它做任何事情。可能与
  • &lt;input type="hidden" name="cmd" value="_xclick"&gt; 更改为 &lt;input type="hidden" name="cmd" value="_cart"&gt; -- _xclick 用于单件商品,_cart 用于购物车。同时设置&lt;input type="hidden" name="upload" value="1"&gt;。更多示例:cms.paypal.com/us/cgi-bin/…
【解决方案2】:

问题是如何为每个用户分别创建一个视图购物车,paypal 链接为我网站上的所有用户创建一个全局购物车

【讨论】:

    猜你喜欢
    • 2015-10-27
    • 2017-11-18
    • 2014-02-06
    • 2013-05-02
    • 1970-01-01
    • 2011-12-19
    • 2012-05-14
    • 2012-06-09
    相关资源
    最近更新 更多