fsBuilds: Deleting WooCommerce Checkout and Subscriptions (Video) --

Feb 8, 2024

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

Task to be completed: You want to make use of WooCommerce and WordPress as an CMS, but would like to use a Merchant of Record to manage the payment process, subscriptions as well as subscription management.

This time this week, we're sharing a design by Topher DeRosia that shows how to use  the javascript library with  the webhooks of's in order to activate subscriptions when an order is placed, or block subscription access if payments fail, while making use of WooCommerce as your CMS.

 Resources

Are you interested in trying it yourself? We've put together all of those resources featured in the video to help you on your route.

 Add a Subscription to the Cart

PHP and 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 for . When he's not bringing new products to market, he's spending his time writing fantasy stories.