我在WordPress
网站上工作,我有多个订阅和一个简单的类型的产品。订阅,如每周,每月,每年等。。使用woocommerce subscription
插件,这是工作完美的罚款。和一个简单的类型的产品作为终身访问。(一次性购买)。
现在,我有另一个着陆页,其中提供的审判,如7天的审判,与订阅,该woocommerce subscription
插件是提供选项的审判和工作完全正常.它允许用户以零价格结帐,但采取CC的详细信息,以便收取他们试用后自动过期.现在的问题来了,当我试图申请相同的报价(试用报价)在我的简单类型的产品(终身).
我已经做了一些研究,并添加了一些代码,使其工作到某个点。让我解释。
首先,我使用woocommerce_product_options_pricing
action将 meta字段添加到产品中进行试用,即
function add_trial_period_field() {
woocommerce_wp_text_input( array(
'id' => PRODUCUT_TRIAL_PERIOD,
'label' => __( 'Trial Period (in days)', 'woocommerce' ),
'desc_tip' => 'true',
'description' => __( 'Enter the number of days for the trial period. (Field will work for only Simple Type product)', 'woocommerce' ),
'type' => 'number',
) );
}
然后使用woocommerce_process_product_meta_simple
来保存数据。然后通过使用woocommerce_add_cart_item_data
,woocommerce_before_calculate_totals
操作,我为我刚刚创建的自定义字段添加了购物车 meta,并将项目价格设置为零,以便用户能够以零价格结账。到目前为止效果不错,但支付字段没有出现,所以我使用woocommerce_cart_needs_payment
操作通过检查购物车中的产品来启用它们。
现在的主要问题是,它保存了简单类型产品的支付令牌,它确实保存了订单 meta中的customer_source_id
和stripe_source_id
,但我无法向用户收取费用,因为它需要实际保存的stripe_payment_token
。
我只是想知道我如何才能迫使woocommerce创建和保存用户的stripe_payment_token
为我的简单类型的产品也沿着订阅类型的产品。
很抱歉这篇文章很长,但我认为在这种情况下细节是必要的。如果你仍然在我的问题中找到遗漏的细节,我很抱歉,但你可以问我,我会分享任何需要的东西。
谢谢。
1条答案
按热度按时间zwghvu4y1#
经过大量的斗争,我设法处理它,所以我在这里张贴的解决方案,以防其他人需要同样的解决方案:)
首先,我在过滤器
woocommerce_payment_successful_result
中捕获了stripe客户ID和支付令牌。在上面的过滤器中,我试图在Stripe上创建/更新客户,并将其支付令牌与CC/源卡详细信息一起保存
在最后
wp_schedule_single_event
是设置后,试用时间将收取用户.代码是下面的收费客户.就是这样:)希望这能有所帮助......如果任何人需要更多的解释或对这个问题有任何疑问......随时问:)