wordpress 的简单 php paypal ipn

     2023-02-22     96

关键词:

【中文标题】wordpress 的简单 php paypal ipn【英文标题】:Simple php paypal ipn for wordpress 【发布时间】:2016-03-05 09:44:14 【问题描述】:

这是我第一次尝试将 paypal 集成到 wordpress 网站 - 所以我可能需要一些帮助。我正在为客户构建一个自定义插件,管理员在该插件中为活动创建预订表格并将其分配给用户。然后,用户可以登录并查看他们分配的预订表格并填写它们。填写完成后,用户就可以支付预订费用。

假设用户已经填写了他们的预订表格并且现在准备为他们的预订付款,他们点击“付款”并被带到一个付款页面 (www.yoursite.com/deposit/?booking-id= xxx) 本质上只是一条消息和一个支付按钮以及用于贝宝的隐藏表单字段。这是该页面的 php:

<?php

$paypal_url='https://www.sandbox.paypal.com/cgi-bin'; // 
$paypal_id='malik@thedistractionsband.co.uk'; // Business email ID
$booking_form_id = get_query_var( 'booking-id' );
$current_user = wp_get_current_user();
?>

<?php
// The Query
$bookings_query = new WP_Query( 
array( 
    'post_type' => 'bookings',
    'p' => $booking_form_id
) 
);

// The Loop
if ( $bookings_query->have_posts() ) 
while ( $bookings_query->have_posts() ) 
    $bookings_query->the_post();

    ?>
<h2>Pay Deposit</h2>
<p>Hello <?php echo $current_user->display_name; ?> blah blah blah</p>      

// Paypal form
<form action="<?php echo $paypal_url; ?>" method="post" name="frmPayPal1">

<?php
    $total_amount = get_post_meta( $bookings_query->post->ID, 'wedding_price', true );
    $deposit_amount = $total_amount*0.2;
?>

<input type="hidden" name="business" value="<?php echo $paypal_id; ?>">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="item_name" value="<?php echo get_post_meta( $bookings_query->post->ID, 'wedding_name', true ); ?> - 20% Deposit">
<input type="hidden" name="item_number" value="DISTR<?php echo $booking_form_id; ?>">
<input type="hidden" name="credits" value="510">
<input type="hidden" name="userid" value="<?php echo $current_user->ID; ?>">
<input type="hidden" name="amount" value="<?php echo $deposit_amount; ?>">
<input type="hidden" name="cpp_header_image" value="http://www.thedistractionsband.co.uk/files/2015/08/LOGO-1.1-1024x304.png">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="currency_code" value="GBP">
<input type="hidden" name="handling" value="0">
<input type="hidden" name="cancel_return" value="<?php echo get_site_url()."/payment-cancel/"; ?>">
<input type="hidden" name="return" value="<?php echo get_site_url()."/my-bookings/"; ?>"> 
<input name="notify_url" value="<?php echo DISTRACTIONS_LOGIN_PLUGIN_URL ?>includes/payments/paypal-ipn.php" type="hidden">

<input type="submit" border="0" name="submit" value="Pay Now" >

<div class="cards"><i class="fa fa-cc-amex"></i> <i class="fa fa-cc-mastercard"></i> <i class="fa fa-cc-visa"></i> <i class="fa fa-credit-card"></i> <i class="fa fa-cc-paypal"></i></div>
</form>


<?php    

/* Restore original Post Data */
wp_reset_postdata();
 else 
echo '<p>No bookings found</p>';

?>

这一切都很好,实际上付款也很顺利。我现在正在尝试处理 paypal-ipn.php 文件,我想在该文件中创建与 paypal 的通信,并在付款成功时向 post_meta 数据库表添加一个条目。

到目前为止我没有太多,但这是我的 paypal-ipn.php

<?php
global $wpdb;
update_post_meta(52, 'deposit_paid', 1);
?>

我希望这会将 deposit_paid 更新为“1”(对于 post_id 52 - 我将动态更改为已支付的预订......一旦我完成了这项工作)。

目前它什么也没做,我在这里做错了吗?

【问题讨论】:

【参考方案1】:

这里有几个选项 - 最简单的(因为它只是一个 php 页面)是添加以下内容:

// Make wordpress functions available - so we can write to the db etc
require_once realpath('/wp-load.php');

使用 wp-load.php 文件的正确相对路径(它位于 WordPress 的根目录中)。

您需要它来启用功能并获取 update_post_meta();上班等等……

开发时您应该:

define('WP_DEBUG', true);

在您的 wp-config.php 中进行设置,因为这会提醒您注意问题。

选项 #2 是在用户提交表单时创建一个函数并将其挂接到 WordPress 钩子中。这更复杂,我觉得不是你想要的。

【讨论】:

使用 PHP 动态生成简单的 Paypal 按钮

...2017-01-0405:57:23【问题描述】:我想将PayPal功能添加到我的Wordpress插件中,因此我冒险访问了PayPal的开发人员页面并浏览了它。我不禁注意到他们的文档是多么的模糊和复杂。在他们的buttonmanagerAPI页面上,第4步的字面意思是“…... 查看详情

如何使用 PHP Wordpress 将沙箱 Paypal 返回值插入 MySQL 表?

】如何使用PHPWordpress将沙箱Paypal返回值插入MySQL表?【英文标题】:HowtoinsertsandboxPaypalreturnvaluesintoMySQLtableusingPHPWordpress?【发布时间】:2018-08-1109:33:27【问题描述】:我已经通过沙盒PayPal完成了一些交易并完成了交易。完成交易... 查看详情

将 PHP 变量从一个插件文件传递到另一个 WordPress

】将PHP变量从一个插件文件传递到另一个WordPress【英文标题】:PassPHPVariablesfromonepluginfiletoanotherWordPress【发布时间】:2012-07-1408:56:31【问题描述】:我正在开发一个WordPress插件,但遇到了一个小障碍。我正在编写与PayPal的IPN交互... 查看详情

是否有一个简单的 PayPal 按钮选项,其中金额基于一些用户输入?

...两次选择来收费,但我真的不知道从哪里开始。我有一个WordPress网站,但对JavaScript或jQuery 查看详情

php简单的wordpress缩略图功能(代码片段)

查看详情

Wordpress 帮助(WPForms + PayPal 工作流程)

】Wordpress帮助(WPForms+PayPal工作流程)【英文标题】:WordpressHelp(WPForms+PayPalWorkflow)【发布时间】:2020-05-1119:58:49【问题描述】:上下文:我已经使用Wordpress中的WPForms插件为我的客户创建了一个自定义捐赠表格。客户希望通过PayPa... 查看详情

带有 PayPal 的 Wordpress 用户角色和条目表

】带有PayPal的Wordpress用户角色和条目表【英文标题】:WordpressUserRoles&EntryFormwithPayPal【发布时间】:2012-06-3003:23:57【问题描述】:我有一个独特的客户机会即将到来,我需要一些关于如何处理该项目的帮助。在没有放弃太多的... 查看详情

将 WordPress 与 PayPal IPN 集成

】将WordPress与PayPalIPN集成【英文标题】:IntegrateWordPresswithPayPalIPN【发布时间】:2016-06-0808:31:40【问题描述】:我正在将一些自定义页面集成到WordPress中。这些页面使用API链接到另一个外部应用程序。我有这个链接到PayPal的部分... 查看详情

使用 Wordpress 插入查询进行 Paypal 交易跟踪?

】使用Wordpress插入查询进行Paypal交易跟踪?【英文标题】:PaypaltransactiontrackingwithWordpressinsertquery?【发布时间】:2018-08-0912:35:02【问题描述】:我在PayPal上通过沙盒模式完成了一笔交易,我使用的是Wordpress平台。问题是我的插入... 查看详情

配置 Wordpress 以接收 Paypal IPN 通知

】配置Wordpress以接收PaypalIPN通知【英文标题】:ConfigureWordpresstoreceivePaypalIPNnotifications【发布时间】:2017-07-0422:39:32【问题描述】:我在我的网站中使用Wordpress。我在我的网站上附加了一些用于处理购买内容的插件。我使用EasyDigi... 查看详情

从 Paypal 重定向回来后,Wordpress + WooCommerce 中的会话不一致

】从Paypal重定向回来后,Wordpress+WooCommerce中的会话不一致【英文标题】:InconsistentsessioninWordpress+WooCommerceafterredirectbackfromPaypal【发布时间】:2021-02-1516:46:15【问题描述】:我有一个带有woocommerce的wordpress商店,它启用了paypal付款... 查看详情

php基于查询参数的简单wordpress重定向(代码片段)

查看详情

php简单的og共享数据(wordpress版本)(代码片段)

查看详情

php用于wordpress的简单iframe短代码(代码片段)

查看详情

php最简单的google分析wordpress插件。(代码片段)

查看详情

按下 Paypal 快速结帐按钮后 Wordpress Paypal 错误

】按下Paypal快速结帐按钮后WordpressPaypal错误【英文标题】:WordpressPaypalErrorafterPaypalexpresscheckoutbuttonispressed【发布时间】:2020-09-2503:54:08【问题描述】:在将Woocommerce更新到最新版本后,我遇到了这样的错误。PayPal错误(10002):处... 查看详情

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

】将PayPal的“捐赠”按钮链接到Wordpress的“发表评论”按钮【英文标题】:LinkPayPal"Donate"buttontoWordpress"PostComment"button【发布时间】:2012-05-1403:54:35【问题描述】:我正在使用Wordpress模板作为收集口头投标的系统,... 查看详情

使用 Paypal 帐户在 Wordpress Gravity Forms 上使用 Paypal 支付

】使用Paypal帐户在WordpressGravityForms上使用Paypal支付【英文标题】:PaywithPaypalaccountonWordpressGravityFormswithPaypaladdon【发布时间】:2014-09-2102:48:13【问题描述】:我们目前在Wordpress网站上添加了带有Paypal的GravityForms以处理订阅付款。Gr... 查看详情