将 PayPal 的“捐赠”按钮链接到 Wordpress 的“发表评论”按钮

Posted

技术标签:

【中文标题】将 PayPal 的“捐赠”按钮链接到 Wordpress 的“发表评论”按钮【英文标题】:Link PayPal "Donate" button to Wordpress "Post Comment" button 【发布时间】:2012-05-14 03:54:35 【问题描述】:

我正在使用 Wordpress 模板作为收集口头投标的系统,真正发布 cmets,这将花费网站访问者 1 美元来制作。我已将帖子末尾的标准“发表评论”文本更改为“提交投标”。

我还安装了一个 PayPal 捐赠插件,该插件会在页面上显示“捐赠”按钮。

我想将这两个按钮的功能合并为一个按钮,即“提交投标”按钮。需要明确的是,提交投标按钮将用户的评论发布到发布页面;我需要一个按钮来执行此操作,同时将用户引导至 PayPal 以捐赠 1 美元。

理想情况下,我会进行检查以验证用户是否实际支付了 1 美元才能提交投标,但由于这更复杂,而且这是出于慈善目的,我相信在我的用户中实际支付。捐赠后,PayPal 会将他们重定向到他们提交口头投标(“评论”)的页面。

“提交投标”按钮的 php 看起来像(来自典型 wordpress 博客的标准“cmets.php”):

<input type="submit" value="Submit Bid" /><input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />

PayPal“捐赠”按钮实际上是作为功能放置在页面上的插件:

<?php echo Paypal_payment_accept(); ?>

函数代码很长,但是在页面上放置实际“捐赠”按钮的代码是:

$output .= "<input type=\"image\" src=\"$payment_button\" name=\"submit\" alt=\"Make payments with payPal - it's fast, free and secure!\" />";

非常感谢有关如何解决这个看似微不足道的问题的想法!

【问题讨论】:

【参考方案1】:

其实可能有一种更简单的方法,而不是使用Paypal 使用表单提交。

保留重定向代码,但将 $location 变量编辑为将用户带到 paypal 的 URL,其中包含您要发送给他们的所有变量, 例如: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=email%40paypalhacks%2Ecom&amount=1%2E00&currency_code=USD&item_name=donation&item_number=1001&quantity=1&shipping=3%2E00&no_shipping=0

所以它会正常处理评论,然后将用户发送到paypal页面进行支付。您可以在浏览器中访问该 URL 以检查它是否有效。可能还要添加一个“return”变量以将用户返回到原始 $location 值,这样用户将在成功支付到 paypal 后进入评论页面。

【讨论】:

【参考方案2】:

您基本上需要一个按钮来执行 2 个操作。所以与其有两个表单(paypal插件会添加自己的表单标签),不如在评论处理代码之前或之后添加paypal重定向功能?

因此,当用户在评论上按下提交按钮时,让页面正常处理提交,但在该文件中,在处理评论后,将用户重定向到贝宝。

您可以更改 wp-cmets-post.php 文件中的代码,该文件位于您的 Wordpress 根文件夹中。

你不需要为此使用插件,它是一个非常简单的贝宝代码:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="<!-- paypal user email which receives payments -->">
<input type="hidden" name="lc" value="CA">
<input type="hidden" name="item_name" value="<!-- donation -->">
<input type="hidden" name="item_number" value="1">
<input type="hidden" name="amount" value="<!-- donation amount -->">
<input type="hidden" name="currency_code" value="CAD">
<input type="hidden" name="return" value="<!-- the URL to redirect the user after payment -->">
<input type="hidden" name="button_subtype" value="services">
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHosted">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" >
                <img  border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif"  ><br />
            </form>

此外,您可以对所有 cmets 进行审核,因此在获得审核人批准之前,它们不会在网站上发布。您可以在仪表板 > 设置 > 讨论中管理这些设置。这样,您可以选择仅批准通过 paypal 成功付款的用户(通过比较他们的电子邮件 ID)来批准 cmets。

【讨论】:

感谢您的好建议。我无法在 wp-cmets-post.php 文件中找到放置 PayPal 代码的确切位置。我相信它应该与: $comment_post_ID = isset($_POST['comment_post_ID']) 交互? (int) $_POST['comment_post_ID'] : 0; 另一件事:我想我应该删除 wp-cmets-post.php 文件底部的重定向代码? $location = empty($_POST['redirect_to']) ? get_comment_link($comment_id) : $_POST['redirect_to'] 。 '#评论-' 。 $comment_id; $location = apply_filters('comment_post_redirect', $location, $comment); wp_safe_redirect( $location );

以上是关于将 PayPal 的“捐赠”按钮链接到 Wordpress 的“发表评论”按钮的主要内容,如果未能解决你的问题,请参考以下文章

Paypal - 创建按钮上没有出现捐赠选项

我的个人网站的 Paypal 捐赠按钮

“立即捐赠”按钮的 Paypal 自定义金额

如何设置多种货币的捐赠paypal按钮?

在 md 文件中创建 PayPal 捐赠按钮

iOS 中捐赠按钮的 Paypal 集成