fsBuilds Offloading WooCommerce Checkout & Subscriptions to (Video) -

Feb 8, 2024

Transfer the complexity of payment, Subscriptions, and Subscription Management off to

Job to be done: You want to use WooCommerce as well as WordPress as a CMS and want to leverage an Merchant of Record to manage payments, subscriptions, and subscription management.

In this post we're highlighting a code by Topher DeRosia, showing the way to easily utilize 's javascript library in combination with  webhooks that enable subscriptions after a purchase is made, or deactivate subscription access when payments fail, while using WooCommerce as a CMS.

 Resources

Are you interested in trying it yourself? We've compiled all those resources featured in the video to help you on your way.

 Add a subscription to your Cart

PHP & Javascript    is_purchasable() && ( ! is_user_logged_in() || 'no' === wcs_get_product_limitation( $product ) ) )   return;   $user_id = get_current_user_id();  echo wp_kses_post( wc_get_stock_html( $product ) );  if ( $product->is_in_stock() ) : ?>       var QueryString = function ()   // This function is anonymous, is executed immediately and  // the return value is assigned to QueryString!  var query_string = ;  var query = window.location.search.substring(1);  var vars = query.split("&");  for (var i=0;i<vars.length;i++)   var pair = vars[i].split("=");  // If first entry with this name  if (typeof query_string[pair[0]] === "undefined")   query_string[pair[0]] = decodeURIComponent(pair[1]);  // If second entry with this name   else if (typeof query_string[pair[0]] === "string")   var arr = [ query_string[pair[0]],decodeURIComponent(pair[1]) ];  query_string[pair[0]] = arr;  // If third or later entry with this name   else   query_string[pair[0]].push(decodeURIComponent(pair[1]));      return query_string; ();     jQuery( document ).ready(function()    var s = ;   if(QueryString.product)   s =   'products' : [    'path':QueryString.product,  'quantity':1    ]       if(QueryString.email && QueryString.fname && QueryString.lname)   s.paymentContact = ;  s.paymentContact.email = QueryString.email;  s.paymentContact.firstName = QueryString.fname;  s.paymentContact.lastName = QueryString.lname;     if(QueryString.coupon)   s.coupon = QueryString.coupon;     if (s) .builder.push(s);  );           Subscribe Now With                 Expand

Subscription Creation via Webhook

PHP & Javascript                Expand

Developer Documentation

Braden Steel

Braden Steel   Braden is the senior Product Marketing Manager at . If he's not busy bringing brand new products to market, he's spending his time writing fantasy novels.