我在我的WordPress网站上使用了条带插件和重力表单进行付款。订阅付款交易正在运作。现在我想在一次付款后取消自动续订。我在我的functions.php中使用了这段代码。我添加了
我的Feed名称$feed_names = array( 'Stripe Feed 1' );
并设置了计数if ( $count == 1 ) {
,但它无效。我不明白如何解决这个问题?我没有在functions.php。
add_action( 'gform_post_add_subscription_payment', function ( $entry ) {
if ( rgar( $entry, 'payment_status' ) == 'Active' ) {
$feed = gf_stripe()->get_payment_feed( $entry );
$feed_name = rgars( $feed, 'meta/feedName' );
$feed_names = array( 'Stripe Feed 1' ); // update this line
if ( in_array( $feed_name, $feed_names ) ) {
global $wpdb;
$count = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$wpdb->prefix}gf_addon_payment_transaction WHERE lead_id=%d", $entry['id'] ) );
if ( $count == 1 ) { // update this line
$result = gf_stripe()->cancel( $entry, $feed );
gf_stripe()->log_debug( "gform_post_add_subscription_payment: Cancelling subscription (feed #{$feed['id']} - {$feed_name}) for entry #{$entry['id']}. Result: " . print_r( $result, 1 ) );
}
}
}
} );
答案 0 :(得分:1)
是的,此代码可以,但是我不知道您的问题在哪里。我有一个建议,就是您可以检查表{$wpdb->prefix}gf_addon_payment_transaction
是否已成功添加数据,而 Subscription 会继续进行,如果您的数据已成功添加,则此附加挂钩将起作用,否则不会该表为空。
如何检查数据?
您可以轻松地打开数据库表并检查数据是否存在,这非常容易。 您可以检查您的Stripe加载项日志以了解发生了什么。
可以尝试以下第三方add-on
您可以检查这些必要的链接
注意:
进行测试时,您需要等待一天的时间才能取消订阅,以便让Stripe有时间捕获订阅付款并发送网络挂钩。
我认为会有所帮助。