This WordPress plugin is intended as a connector to Magic Subscriptions subscription box management system. It does require an account with Magic Subscriptions in order to be useful.
The intention is to keep users on the primary WordPress site as much as possible, only redirecting off to MagicSubscriptions portal when necessary; and bringing them back. To facilitate this, there are connectors that pull subscription and order information in to the plugin to display on the primary WordPress site.
For any technical support please contact: wp-support@magicsubsriptions.com
All blocks are shown under a Magic Subscriptions folder in the block editor.
Name: PlansComponent
Block name: Plans
Block identifier: magic-subscriptions/plans
Shortcode: [ MagicSubscriptions_Plans code=’code
‘ ]
Widget: Magic Subs (Plans)
The Plans component displays the subscription plans currently available within the LandingPage code
The code
is optional and, if missing, the Default
LandingPage will be used
Name: ConnectButtonComponent
Block name: Connect
Block identifier: c-subscriptions/connect
Shortcode: [ MagicSubscriptions_Connect ]
Widget: Magic Subs (Connect)
The ConnectButton component displays a button to link (via a cookie) to a MagicSubscriptions login
If a valid connected cookie exists then this component is empty.
Name: SummaryComponent
Block name: Summary
Block identifier: magic-subscriptions/summary
Shortcode: [ MagicSubscriptions_Summary ]
Widget: Magic Subs (Summary)
The Summary component shows a ‘shopping cart’ style summary of the connected customer’s active subscriptions, pending orders and ‘open-box’ added items.
If the system is not connected to a login then this component is empty
Name: WideSummaryComponent
Block name: Wide Summary
Block identifier: magic-subscriptions/widesummary
Shortcode: [ MagicSubscriptions_WideSummary ]
Widget: Magic Subs (Wide Summary)
The Wide Summary component is a landscape version of the Summary component
Name: ShopComponent
Block name: Shop
Block identifier: magic-subscriptions/shop
Shortcode: [ MagicSubscriptions_Shop tag=’tag
‘ ]
Widget: Magic Subs (Shop)
The Shop component shows a product list that can be added to the next order that is scheduled.
The tag
is required (or nothing will display) and relates to the tag set up in the products list in your Magic Subscriptions portal.
Name: AttributeComponent
The Attributes component adds a section to Gutenberg blocks supporting the following options:
Name: ElementorComponent
The Elementor component adds a visibility option to the Advanced tab on the Edit Section -> Advanced panel:
$metal: The current Metal as configured in Magic Subscriptions
**$code$: The **Landing Page* code being rendered
**: New Metal Value. Any unknown [non-stndard] Metal values will result in the MagicSubscriptions_RenderPlan
action to be called to render the plan.
add_filter( "MagicSubscriptions_OverrideRenderPlan", function( $metal, $code ) {
return "MyNewMetalName";
}, 10, 2 );
$metal: The Metal (theme) that is being rendered (as returned from the MagicSubscriptions_OverrideRenderPlan
action)
$code: The Landing Page* code being rendered
**$plan: Object representing the plan (TODO: Document object properties)
$action: URL Action for POSTing a form to => hands control over to Magic Subscriptions (note the $code
, $plan->code
[named plan
] and $token
should be included as hidden form post elements)
$token: Security token to be POSTed to Magic Subscriptions
This action is called for every plan being rendered within a section for an unknown [non-standard] Metal value.
add_action( "MagicSubscriptions_RenderPlan", function( $metal, $code, $plan, $action, $token ) {
?>
<form class="plan" method='post' action='<?= $action ?>'>
<input type='hidden' name='token' value='<?= $token ?>'>
<input type='hidden' name='code' value='"<?= $code ?>'>
<input type='hidden' name='plan' value='<?= $plan->code ?>'>
<p><?= $plan->name ? $plan->name : $plan->scheduleName ?></p>
<p><?= $plan->title ? $plan->title : $plan->scheduleTitle ?></p>
<p><?= $plan->headline ? $plan->headline : $plan->scheduleHeadline ?></p>
<p>£ <?= number_format( $plan->dayOnePrice, 2, '.', ',' ) ?></p>
<p>£ <?= number_format( $plan->recurringPrice, 2, '.', ',' ) ?></p>
<button type='submit'><?= $plan->actionLabel ?></button>
</form>
<?php
}, 10, 5 );