Compare commits
2 Commits
oribi-sync
...
oribi-sync
| Author | SHA1 | Date | |
|---|---|---|---|
| 0776a9f77c | |||
|
|
0420be8bd6 |
@@ -13,16 +13,16 @@
|
||||
<!-- wp:oribi/platform-row {"heading":"One Dashboard for Every Display","description":"Manage your entire signage network from a single cloud-based console. Organise screens by location, group, or purpose. Push content updates across your whole estate in one click — no matter how many sites you operate.","btnText":"Get Started","btnUrl":"/contact"} /-->
|
||||
<!-- wp:oribi/platform-row {"heading":"Scheduling That Runs Itself","description":"Set content to appear at the right time, in the right place, automatically. Day-parting, date ranges, and event-triggered playback let you plan weeks ahead while the platform handles the execution.","btnText":"See Pricing","btnUrl":"/pricing","reversed":true} /-->
|
||||
<!-- wp:oribi/platform-row {"heading":"Works With Your Existing Screens","description":"Our player devices connect to any screen with an HDMI port — no proprietary hardware required. Already have displays? Plug in and go. Need a full setup? We offer bundled player-and-display packages too.","btnText":"View Devices","btnUrl":"/devices"} /-->
|
||||
<!-- wp:oribi/platform-row {"heading":"Enterprise Security, Zero Hassle","description":"End-to-end encryption, role-based access, and secure cloud hosting keep your content and network locked down. Our player devices cache content locally and continue displaying even during internet outages.","btnText":"Learn More","btnUrl":"/about","reversed":true} /-->
|
||||
<!-- wp:oribi/platform-row {"heading":"Live Data, Straight to Screen","description":"Pull in web dashboards, social feeds, KPIs, and real-time APIs directly to your displays. Content updates automatically — no manual refreshing, no extra steps. Turn any screen into a live information hub.","btnText":"Learn More","btnUrl":"/solutions","reversed":true} /-->
|
||||
<!-- /wp:oribi/platform-section -->
|
||||
|
||||
<!-- wp:oribi/feature-section {"variant":"alt","label":"Capabilities","heading":"The Tools Behind Great Signage","lead":"From content creation to performance tracking, every feature is designed to save you time and keep your screens looking sharp.","columns":3} -->
|
||||
<!-- wp:oribi/feature-card {"iconType":"fontawesome","faIcon":"fas fa-cloud","title":"Cloud-Native CMS","description":"Log in from any browser, anywhere. No software to install, no servers to maintain. Your content is always accessible and backed up."} /-->
|
||||
<!-- wp:oribi/feature-card {"iconType":"fontawesome","faIcon":"fas fa-clock","title":"Intelligent Scheduling","description":"Day-parting, date-based playlists, and event triggers let you automate content rotation down to the minute."} /-->
|
||||
<!-- wp:oribi/feature-card {"iconType":"fontawesome","faIcon":"fas fa-chart-line","title":"Live Data on Screen","description":"Pull in web dashboards, social feeds, KPIs, and APIs. Your displays update in real time without manual intervention."} /-->
|
||||
<!-- wp:oribi/feature-card {"iconType":"fontawesome","faIcon":"fas fa-wifi","title":"Offline Playback","description":"Content is cached on the player device. If your connection drops, your displays keep running seamlessly until it returns."} /-->
|
||||
<!-- wp:oribi/feature-card {"iconType":"fontawesome","faIcon":"fas fa-users","title":"Unlimited Users","description":"Invite your entire team at no extra cost. No per-seat charges, no access restrictions — on any plan."} /-->
|
||||
<!-- wp:oribi/feature-card {"iconType":"fontawesome","faIcon":"fas fa-shield-halved","title":"Enterprise Security","description":"End-to-end encryption, role-based access control, secure boot hardware, and SOC 2-aligned cloud infrastructure."} /-->
|
||||
<!-- wp:oribi/feature-card {"iconType":"fontawesome","faIcon":"fas fa-chart-pie","title":"Playback Analytics","description":"Track what's playing, where, and when. Screen health monitoring and content logs give you full visibility across your network."} /-->
|
||||
<!-- wp:oribi/feature-card {"iconType":"fontawesome","faIcon":"fas fa-shield-halved","title":"Enterprise Security","description":"End-to-end encryption, role-based access control, secure boot hardware, and SOC 2-aligned cloud infrastructure keep your content and network protected."} /-->
|
||||
<!-- /wp:oribi/feature-section -->
|
||||
|
||||
<!-- wp:oribi/value-section {"variant":"normal","label":"Why Choose Us","heading":"Beyond the Software","lead":"Great signage takes more than a CMS. Here\u0027s what you get when you work with OTS Signs.","columns":3} -->
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
/*
|
||||
* Title: Pricing
|
||||
* Slug: ots-signs/page-pricing
|
||||
* Categories: oribi-pages
|
||||
* Keywords: pricing, plans, affordable, scalable, essentials, pro
|
||||
* Post Types: page
|
||||
* Slug: pricing
|
||||
* Post Type: page
|
||||
*/
|
||||
?>
|
||||
|
||||
return <<<'ORIBI_SYNC_CONTENT'
|
||||
<!-- wp:oribi/page-hero-animated {"label":"Pricing","title":"Straightforward Pricing, No Surprises","description":"Every plan includes the full platform. Pick the tier that matches your scale, and start displaying. No hidden fees, no feature gates on the essentials."} /-->
|
||||
|
||||
<!-- wp:oribi/value-section {"variant":"normal","label":"Included on Every Plan","heading":"The Full Platform, From Day One","lead":"Whether you choose Essentials or Pro, you get the same powerful core. No artificial restrictions.","columns":4} -->
|
||||
@@ -16,11 +15,12 @@
|
||||
<!-- wp:oribi/value-card {"iconType":"fontawesome","faIcon":"fas fa-rocket","title":"Instant Publishing","description":"Upload content and push it live across your network in seconds — not hours."} /-->
|
||||
<!-- /wp:oribi/value-section -->
|
||||
|
||||
<!-- wp:oribi/pricing-section {"variant":"alt","label":"Choose Your Plan","heading":"Scale When You\u0027re Ready","lead":"Start with Essentials and upgrade seamlessly as your network grows. No disruption, no data loss."} -->
|
||||
<!-- wp:oribi/pricing-card {"name":"Essentials","tagline":"$7/Screen Monthly · $70/Screen Annually","features":["Up to 20 screens","Custom subdomain","Shared CMS server","Content scheduling & day-parting","Integration with live data sources","Unlimited user seats","Publish content in minutes","Offline playback support","Email support"],"btnText":"Get Started","btnUrl":"/contact"} /-->
|
||||
<!-- wp:oribi/pricing-card {"name":"Pro","tagline":"Contact us for more information","features":["500+ screens","Custom domain","Dedicated CMS server","Custom live data integrations","Priority support","Advanced analytics","SSO & role-based access","SLA guarantee","Dedicated account manager"],"btnText":"Contact Sales","btnUrl":"/contact","featured":true,"badge":"Enterprise"} /-->
|
||||
<!-- wp:oribi/pricing-section {"variant":"alt","label":"Choose Your Plan","heading":"Scale When Youu0027re Ready","lead":"Start with Essentials and upgrade seamlessly as your network grows. No disruption, no data loss."} -->
|
||||
<!-- wp:oribi/pricing-card {"name":"Essentials","tagline":"Everything you need to get started","price":"$7","pricePer":"per screen / month · or $70/screen annually","features":["Up to 20 screens","Custom subdomain","Shared CMS server","Content scheduling & day-parting","Integration with live data sources","Unlimited user seats","Publish content in minutes","Offline playback support","Email support"],"btnText":"Get Started","btnUrl":"/contact"} /-->
|
||||
<!-- wp:oribi/pricing-card {"name":"Pro","tagline":"For large-scale and enterprise deployments","price":"Custom","pricePer":"tailored to your network size","features":["500+ screens","Custom domain","Dedicated CMS server","Custom live data integrations","Priority support","Advanced analytics","SSO & role-based access","SLA guarantee","Dedicated account manager"],"btnText":"Contact Sales","btnUrl":"/contact","featured":true,"badge":"Enterprise"} /-->
|
||||
<!-- /wp:oribi/pricing-section -->
|
||||
|
||||
<!-- wp:oribi/intro-section {"variant":"normal","label":"Try Before You Commit","heading":"Want to Explore the Platform First?","description":"Request access to our live demo instance and take the full CMS for a spin — create content, set up schedules, and see exactly how it works. No credit card, no obligation.","visual":""} /-->
|
||||
|
||||
<!-- wp:oribi/cta-banner {"heading":"Questions About Pricing?","text":"We're happy to walk you through the plans, build a custom quote, or set up a demo so you can see the value firsthand.","btnText":"Get in Touch","btnUrl":"/contact"} /-->
|
||||
ORIBI_SYNC_CONTENT;
|
||||
|
||||
@@ -1067,6 +1067,8 @@ reg('oribi/pricing-card', {
|
||||
faIcon: { type: 'string', default: '' },
|
||||
name: { type: 'string', default: '' },
|
||||
tagline: { type: 'string', default: '' },
|
||||
price: { type: 'string', default: '' },
|
||||
pricePer: { type: 'string', default: '' },
|
||||
features: { type: 'array', default: [] },
|
||||
btnText: { type: 'string', default: 'Get Started' },
|
||||
btnUrl: { type: 'string', default: '/contact' },
|
||||
@@ -1122,6 +1124,17 @@ reg('oribi/pricing-card', {
|
||||
onChange: function(v){s({name:v});}, placeholder: 'Plan name...' }),
|
||||
el(RT, { tagName: 'p', className: 'pricing-tagline', value: a.tagline,
|
||||
onChange: function(v){s({tagline:v});}, placeholder: 'Tagline...' }),
|
||||
a.price || a.pricePer ? el('div', { className: 'pricing-price' },
|
||||
el(RT, { tagName: 'div', className: 'pricing-amount', value: a.price || '',
|
||||
onChange: function(v){s({price:v});}, placeholder: '$0' }),
|
||||
el(RT, { tagName: 'div', className: 'pricing-per', value: a.pricePer || '',
|
||||
onChange: function(v){s({pricePer:v});}, placeholder: 'per screen / month' })
|
||||
) : el('div', { className: 'pricing-price' },
|
||||
el(RT, { tagName: 'div', className: 'pricing-amount', value: '',
|
||||
onChange: function(v){s({price:v});}, placeholder: '$0' }),
|
||||
el(RT, { tagName: 'div', className: 'pricing-per', value: '',
|
||||
onChange: function(v){s({pricePer:v});}, placeholder: 'per screen / month' })
|
||||
),
|
||||
el('ul', { className: 'pricing-features' },
|
||||
features.map(function (f, fi) {
|
||||
return el('li', { key: fi, style: { display: 'flex', alignItems: 'center', gap: '4px' } },
|
||||
|
||||
@@ -513,6 +513,8 @@ add_action( 'init', function () {
|
||||
'faIcon' => [ 'type' => 'string', 'default' => '' ],
|
||||
'name' => [ 'type' => 'string', 'default' => '' ],
|
||||
'tagline' => [ 'type' => 'string', 'default' => '' ],
|
||||
'price' => [ 'type' => 'string', 'default' => '' ],
|
||||
'pricePer' => [ 'type' => 'string', 'default' => '' ],
|
||||
'features' => [ 'type' => 'array', 'default' => [] ],
|
||||
'btnText' => [ 'type' => 'string', 'default' => 'Get Started' ],
|
||||
'btnUrl' => [ 'type' => 'string', 'default' => '/contact' ],
|
||||
@@ -1296,6 +1298,12 @@ function oribi_render_pricing_card( $a ) {
|
||||
<?php if ( oribi_has_icon( $a ) ) : ?><div class="feature-icon" style="margin-inline:auto;"><?php echo oribi_render_icon( $a ); ?></div><?php endif; ?>
|
||||
<div class="pricing-name"><?php echo esc_html( $a['name'] ); ?></div>
|
||||
<p class="pricing-tagline"><?php echo wp_kses_post( $a['tagline'] ); ?></p>
|
||||
<?php if ( ! empty( $a['price'] ) ) : ?>
|
||||
<div class="pricing-price">
|
||||
<div class="pricing-amount"><?php echo wp_kses_post( $a['price'] ); ?></div>
|
||||
<?php if ( ! empty( $a['pricePer'] ) ) : ?><div class="pricing-per"><?php echo wp_kses_post( $a['pricePer'] ); ?></div><?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<ul class="pricing-features">
|
||||
<?php foreach ( ( $a['features'] ?? [] ) as $f ) : ?>
|
||||
<li><span class="pricing-check">✓</span> <?php echo wp_kses_post( $f ); ?></li>
|
||||
|
||||
Reference in New Issue
Block a user