Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Stripe payments 如何编辑此重力表单条附加代码,以便我也可以向信用卡收费?_Stripe Payments_Gravity Forms Plugin - Fatal编程技术网

Stripe payments 如何编辑此重力表单条附加代码,以便我也可以向信用卡收费?

Stripe payments 如何编辑此重力表单条附加代码,以便我也可以向信用卡收费?,stripe-payments,gravity-forms-plugin,Stripe Payments,Gravity Forms Plugin,Gravity Forms有一个连接到Stripe的Stripe附加组件,允许一次性和重复购买。该功能运行良好,但对于一次性购买,它不会在条带中创建客户。(相比之下,它确实为定期购买创建了条带客户。) 这段代码的问题在于,它只允许您创建客户。我需要创建一个客户并对信用卡收费。 代码片段如下所示: add_filter( 'gform_stripe_customer_id', function ( $customer_id, $feed, $entry, $form ) { GFCommon::

Gravity Forms有一个连接到Stripe的Stripe附加组件,允许一次性和重复购买。该功能运行良好,但对于一次性购买,它不会在条带中创建客户。(相比之下,它确实为定期购买创建了条带客户。)

这段代码的问题在于,它只允许您创建客户。我需要创建一个客户并对信用卡收费。 代码片段如下所示:

add_filter( 'gform_stripe_customer_id', function ( $customer_id, $feed, $entry, $form ) {
GFCommon::log_debug( __METHOD__ . '(): running.' );
if ( rgars( $feed, 'meta/transactionType' ) == 'product' && rgars( $feed, 'meta/feedName' ) == 'feed name goes here' ) {
    GFCommon::log_debug( __METHOD__ . '(): Working for feed ' . rgars( $feed, 'meta/feedName' ) );
    $customer_meta = array();

    $email_field = rgars( $feed, 'meta/receipt_field' );
    if ( ! empty( $email_field ) && strtolower( $email_field ) !== 'do not send receipt' ) {
        $customer_meta['email'] = gf_stripe()->get_field_value( $form, $entry, $email_field );
    }

    $customer = gf_stripe()->create_customer( $customer_meta, $feed, $entry, $form );
    GFCommon::log_debug( __METHOD__ . '(): Returning Customer ID ' . $customer->id );

    return $customer->id;
}

return $customer_id;
}, 10, 4 );

add_filter( 'gform_stripe_charge_authorization_only', function ( $authorization_only, $feed ) 
{
if ( rgars( $feed, 'meta/feedName' ) == 'feed name goes here' ) {
    GFCommon::log_debug( __METHOD__ . '(): running for feed ' . rgars( $feed, 'meta/feedName' ) );
    return true;
}

return $authorization_only;
}, 10, 2 );

add_filter( 'gform_stripe_charge_pre_create', function( $charge_meta, $feed, $submission_data, $form, $entry ) {
if ( rgars( $feed, 'meta/feedName' ) == 'feed name goes here' ) {
    GFCommon::log_debug( __METHOD__ . '(): running for feed ' . rgars( $feed, 'meta/feedName' ) );
    $charge_meta['setup_future_usage'] = 'off_session';
}

return $charge_meta;
}, 10, 5 );

您可以始终自己创建,然后在创建(或)时提供它。重力是否支持一位顾客通过,我不知道。您必须联系我们的客户,询问他们是否支持这项服务,以及如何做到这一点。

感谢诺兰的回答。但我还有一个问题。我提到的代码,它返回客户的id。我如何编辑它以使其返回客户的电子邮件?我不完全清楚您所指的代码,但它似乎只是
return$customer->id
返回$customer->email(假设您设置了客户电子邮件)。