我使用付费会员亲插件管理会员在一个新闻网站正在开发的自定义注册页面,导致一个自定义定价(水平)页面成功注册后,使用paystack内联js库,而不是支付网关来处理付款和成功支付,MemberOrder类用于生成订单,也更新用户的会员资格级别.
现在面临的问题是,如果用户订阅了为期30天的会员计划,在检查付费会员专业设置的订单部分时,注册和开始日期被成功且准确地分配,但结束日期被设置为“从不”,而不是从开始日期起30天的日期。如何才能纠正这一点,因为我已经通过了整个支付会员亲文件不成功。
订单结束日期应设置为自开始日期起30天的日期,而不是“从不”。
// Update the membership level for the user
pmpro_changeMembershipLevel(substr($decrypted_data, 19, 1), $user_id); // Change membership level
if (!$order->payment_transaction_id) {
// Query to check if order_id/payment_transaction_id already exists in database, in the event someone is trying to reuse a successful payment ID
$order->code = $order_id;
$order->user_id = $user_id;
$order->payment_transaction_id = $order_id;
$order->total = $membership_amount;
$order->membership_id = substr($decrypted_data, 19, 1);
$order->gateway = 'PayStack';
$order->status = 'success';
// Save object
$order->saveOrder();
}
2条答案
按热度按时间wfsdck301#
试试这个:
它使用pmpro_getLevel($level_id)检索成员资格级别详细信息,然后根据到期号和期限计算EndDate。
8zzbczxx2#
@诺埃尔Bürgler感谢您的回答,但它不能工作,因为MemberOrder类没有enddate属性。然而,经过一番折腾,我能够解决这个问题,我决定在这里分享答案,因为我注意到很多人面临同样的问题,不想为此支付PMPRO支持。
下面是我如何解决这个问题的:
希望这能帮助其他和我一样经历同样问题的人:)