将数据提交给db后,将用户重定向到PayPal

时间:2013-11-05 07:24:45

标签: html wordpress forms paypal

我提交表格的情况非常频繁。我有一个从用户处获取订单的表单,在提交表单后,它会将用户带到PayPal进行付款。问题是如何将用户重定向到PayPal。我已经尝试了几乎所有可能的解决方案,包括j。查询的$ .post函数,JavaScript双动作提交和php查询字符串重定向,但没有人帮助我。这是一个谦卑的要求,所有人帮助我。告诉我解决方案。

附加:表单是自定义的,我已经创建了我的模板来存储WordPress中的数据。当我将表单操作的路径更改为我的数据库路径时,for将提交到我的数据库,当我将其更改为PayPal路径时,它将其提交给PayPal但不提交给我的数据库。

2 个答案:

答案 0 :(得分:1)

类似的代码应该适合您,subscriptionFrm是您表单的ID。在我的例子中,index.php返回一个JSON字符串,其中包含有关服务器端处理的状态(使用eval解析JSON字符串)。当然,您需要将所有PayPal隐藏字段附加到当前表单。

  

$(document).ready(function(){

     

$('#subscriptionFrm input [type =“submit”]')。click(function(){

          $.post('index.php', $('#subscriptionFrm').serialize()).done(function (r) {
                  var result = eval('(' + r + ')');

                  /* Check result from your PHP code */


                  $('#subscriptionFrm').attr('action', 'https://www.paypal.com/cgi-bin/webscr');
                  $('#subscriptionFrm').submit();
          });

          return false;           }); });

答案 1 :(得分:1)

在处理表单数据后,有一种非常简单的方法可以重定向到PayPal。所以你只应该遵循这个条目中的原则。

首先,我从我的插件代码中为WordPress init设置了一个动作:

add_action( 'init', 'my_init');

现在,是时候实现'my_init'功能了:

if( !function_exists( 'my_init' ) ){ // Use function_exists to avoid conflicts
    function my_init(){
        if( $_POST[ 'unique_variable' ]){ // A form field to identify we are processing the form
        //...process here your form
        // and then print the form to be redirected to PayPal
        ?>
        <form action="https://www.paypal.com/cgi-bin/webscr" name="myform" method="post">
           <input type="hidden" name="business" value="seller@email.com" />
       <input type="hidden" name="item_name" value="Product Name" />
           <input type="hidden" name="item_number" value="Product Number" />
       <input type="hidden" name="amount" value="10" />
       <input type="hidden" name="currency_code" value="USD" />
       <input type="hidden" name="lc" value="EN" />

       <input type="hidden" name="return" value="URL to the product after check the payment" />
       <input type="hidden" name="cancel_return" value="URL to use if user cancel the payment process" />
       <input type="hidden" name="notify_url" value="URL of IPN in your website to check the payment" />

       <input type="hidden" name="cmd" value="_xclick" />
       <input type="hidden" name="page_style" value="Primary" />
       <input type="hidden" name="no_shipping" value="1" />
       <input type="hidden" name="no_note" value="1" />
       <input type="hidden" name="bn" value="PP-BuyNowBF" />
       <input type="hidden" name="ipn_test" value="1" />
        </form>
        <script type="text/javascript">document.myform.submit();</script>
        <?php
        exit; // It is very important stop the WordPress in this point
        }

    }
}

您应该修改PayPal表单字段的值,包括您的电子邮件,IPN的URL,取消和返回页面,产品名称,编号和要收取的金额。

打印PayPal表单后要注意“退出”句子,需要停止PHP执行,document.myform.submit();加载后提交PayPal表单。

此主题的一个很好的起点是插件的高级版本计算字段表单(http://wordpress.org/plugins/calculated-fields-form/

;-) Ericko