WP Sharks Core™


![WP Sharks Icon](https://wpsharks.com/wp-content/uploads/2016/07/fin-512-150x150.png){.float-right}

The WP Sharks Core (WPSC) is a WordPress plugin that serves as a framework for others. This plugin, by itself, does very little. It merely serves as a base for other plugins that we offer, because it contains code that can be reused easily. So instead of shipping each plugin with our full framework, we provide the framework as an installable plugin. This allows you to run lots of other plugins that we offer with very little overhead. Install this once and you're good

Free Download

Built by WP Sharks™
SKU: wp-sharks-core Category:

Additional DetailsSystem Requirements

A shared hosting provider (we recommend the MediaTemple Grid), a VPS, or dedicated server.

Product-Specific Requirements

Processor 64-bit processor (or better)
PHP v7.0.4 (or higher); tested up to 7.1.3
WordPress v4.7 (or higher); tested up to 4.8-alpha

Open in New TabProduct Changelog


  • Adding s::enqueueJsCookieLibs().
  • Updating to latest WebSharks Core lib.
  • Enhancing CSS framework.


  • Adding s::wcProductPost().
  • Adding s::wcProductParent().


  • Adding s::enqueueDeviconLibs().
  • Updating to latest WebSharks Core.
  • Updating for compatibility with WooCommerce 3.0+.


  • Adding s::enqueueStripeLibs().
  • Adding s::enqueueNoUiSliderLibs().
  • Updating to latest WebSharks Core, which now includes Stripe integration.
  • Updating to latest Semantic UI build, now a custom build that comes with the WebSharks Core.
  • Adding support for inline scripts via wp_add_inline_script().
  • Enhancing data-if="" attribute handling and expanding it to cover all menu page areas.


  • Adding new Markup{} utils.
  • Adding reCAPTCHA JS lib.
  • Updating to latest WebSharks core.
  • Adding initial_network_id and initial_site_id to Wp{} class.
  • Enhanced security & flexibility by removing reliance upon wp_salt() for plugin-specific cryptography needs.
  • Enhanced security by adding support for Defuse crypto keys & encryption.
  • Enhanced security by using network-specific and site-specific keys.
  • Removing mcrypt dependency entirely.
  • Reorganizing App class methods.


  • Adding support for Elite variation.
  • Adding support for async scripts.
  • Adding support for explicitly empty SRIs.
  • Adding support for inline styles in our own lib.


  • Bug fix. Missing scripts key in Semantic UI libs.


  • Updating to latest core.
  • Adding Ace scripts/styles.
  • Adding Behave scripts/styles.
  • Adding MarkdownIt scripts/styles.
  • Adding Font Awesome scripts/styles.
  • Adding Highlight.js scripts/styles.
  • Adding jQuery (latest) scripts/styles.
  • Improving organization of CSS/JS framework.
  • Added support for automatic SRIs in scripts/styles.
  • Adding integrity="" attributes for remote scripts.
  • Adding src/client-s/sris.json map file for fast lookups.
  • Refactoring StyleScripts{} class to make it more robust.
  • Adding support for $Form->inputRow(['type' => 'hidden']);.
  • Adding support for $Form->*Row(['if' => 'option=0|1|2|3|etc']);.
  • Adding support for $Form->*Row(['if' => 'option!=0|1|2|3|etc']);.
  • Adding support for $Form->hrRow(); (horizontal dividing row).


  • Bug fix. Undefined index active_label on license keys menu page.
  • Adding home_url and related properties to the centralized Wp base class.
  • Correcting typo in dependency notice. resolove should be resolve.
  • Bug fix. Broken ‘Settings’ link for some plugins running on the WP Sharks Core. See Issue #5.
  • Enhancing WooCommerce conditionals in Wp base class.
  • Enhancing security by removing basename(__FILE__) from notices.


  • Updating to latest release of the websharks/core.
  • Adding support for recurring notices, errors, and/or warnings.
  • Use WordPress color pickers for <input type="color" ...> fields. See: https://github.com/websharks/wp-sharks-core/issues/3
  • Adding support for free trial copies of pro software with time-limited access to all pro features.
  • Bug fix. Plugins nested inside a woocommerce parent page were not being linked up properly in the list of plugin action links.
  • Adding s::defaultMenuPageUrl() that collects the default menu page URL for the current plugin, based on which menu pages were added via WPSC API calls.
  • Remove Dismiss & from trial notice buttons in favor of more concise calls to action.


  • Bumping minimum WP requirement to v4.6.
  • Updating to the latest WP PHP RV library.
  • Enhanced remote API calls for automatic updates. Future-proofing.
  • Adding ul and ol tag consideration in notice markup generation handler.


  • Correcting a bug in the list of license keys that was causing a table to be displayed as block and therefore it lost it’s table properties.
  • Bug fix. Transient hashToKey() should return an un-prefixed key.
  • Bug fix. dieInvalid() referenced incorrectly.


  • New Facade: s::getDefaultOption().
  • Upgrading to latest websharks/core.
  • Adding support for meta_links in menu pages.
  • A restore tab is now automatically converted into a meta link.


  • Automatically add -widget suffix in Widget{} base class.


  • Bug fix. Only show widget when extender returns non-empty content.
  • Adding s::postMetaExists() to check if a post has any given meta values.


  • Enhancing menu page styles.
  • Adding SCSS utility mixins for developers.
  • Bug fix. Core URL leading to ‘My Downloads’ was a broken link.


  • Adding c::collectPostMeta().


  • Adding Classes\SCore\WidgetForm{}
  • Adding Classes\SCore\Base\Widget{}
  • Adding Classes\SCore\Base\Widget{}
  • Enhancing menu page styles in admin area.
  • Fixed a JS bug that caused tooltips not to be shown in widget areas.


  • Updating docBlocks throughout for improved codex generation coming soon.
  • Adding sami.cfg for upcoming codex generation.
  • Updating to latest release of the websharks/core.


  • Adding onclick configuration key for menu page tabs.
  • Adding ?in-wp flag to brand-based URLs that open inside WordPress; e.g., changelog for a new release.


  • Adding s::postMetaKey().
  • Adding s::getPostMeta().
  • Adding s::updatePostMeta().
  • Adding s::deletePostMeta().
  • Adding s::setPostMeta().
  • Adding s::unsetPostMeta().
  • Adding s::addPostMetaBox().
  • Adding s::postMetaBoxForm().


  • Updating to the latest websharks/core.
  • Adding Jetpack utils for Markdown parsing.
  • Bug fix in select form field generator. Use [] when multiple is true.
  • Bug fix in s::restActionFormElementName() when passing [] as an array.
  • Bug fix. Use ___ignore key that forces browsers to submit an empty array.


  • Refactoring menu page tab generation.
  • Refactoring menu page argument names.
  • Fixing a bug in automatic action links for plugins.


  • Dropping PDO extension requirement (now optional).
  • Dropping posix extension requirement (now optional).
  • Dropping explicit PHP version requirement, because it’s already specified by the websharks/core.
  • Updating to the latest websharks/core library.


  • Enhancing core menu page styles. The external link icons were being applied to buttons.


  • Bug fix. Missing $WpDb variable in transient utils.
  • Adding support for ‘Check Again’ functionality in update-core.php via $_REQUEST['force-check'].
  • Enhancing/optimizing notice utilities.
  • Enhancing/optimizing support for multisite networks and network-wide, network-only plugins.
  • Enhancing menu page utilities.


  • Bug fix. Core itself should ship with it’s own license key.


  • License key request for type: theme, plugin only.
  • Updating to latest websharks/core with Simple Expression bug fixes.


  • Adding eval() as a new PHP requirement.


  • Updating to latest websharks/core.
  • Adding anonymous stats collection via stats.wpsharks.io.


  • Enhancing license key integration.
  • Enhancing license key templates and notices.
  • Updating to the latest websharks/core.
  • Enhancing compatibility with a lite-to-pro transition in terms of how this impacts license keys.


  • Updating to latest websharks/core.
  • Adding App collection utilities needed by licensing system.
  • Adding s::addApp()
  • Adding s::getApps()
  • Adding s::getAppsByType()
  • Adding s::getAppsBySlug()
  • Forcing Classes\App::$Parent to null when $is_core.
  • Making Dicer aware of Classes\SCore\MenuPageForm{}.
  • Refactoring to help optimize apps based on core.
  • New utilities related to menu pages, styles, URLs.


  • Adding s::addMenuPage()
  • Adding s::addMenuPageItem()
  • Adding Classes\App::CORE_CONTAINER_VAR
  • Adding Classes\App::CORE_CONTAINER_NAME
  • Adding Classes\SCore\Utils::DbMenuPage{}


  • Upgrading to latest websharks/core.


  • Upgrading to latest websharks/core w/ Simple Expression utils.


  • Bug fix. short_var and short_data_var removed in favor of Transient Shortlinks.


  • Adding s::restActionUrl().
  • Adding s::restActionVar().
  • Adding s::restActionDataVar().


  • Bug fix. Shortlink is a one-word reference.


  • Adding transientShortlink() API and Facade.
  • Enhancing ReST action handlers. New method addApiVersion().


  • Enhancing RestAction{} utils.
  • Adding new RestAction{} behavioral arg: use_short_vars.
  • Bug fix. RestAction{} URLs should only contain an Nonce if applicable.


  • Bug fix. Template utility class w/ wrong namespace.


  • Adding s::localToUtc(). Converts a local timestamp into UTC time.
  • Adding s::utcToLocal(). Converts a UTCE timestamp into a local time.
  • Bug fix in s::i18nUtc() with respect to timezone chars not handled properly by date_i18n() in WordPress.
  • API call for package URL (in pro software) now uses site instead of location following an update at wpsharks.com.
  • Adding CORE_CONTAINER_SLUG constant to base App{} class. Used in a few default directory locations at this time.
  • Extending Template{} class in WSC to allow for WP themes to override any default templates.


  • Enhance license key placeholder in installation notice.
  • Security hardening; disallow multi-dimensional ReST action data by default.
  • Adding ability to define a custom $slug for fatalities that occur in AJAX/API handlers.


  • Updating to latest WSC.
  • Nest all theme/plugin logs/cache into .wp-sharks sub-directory.


  • Updating to the latest WSC.
  • Adding additional brand-related config keys and URL generators.
  • Enhancing transient utilities. Adding support for DB-driven transients via hash IDs.
  • Bug fix. $uri in Updater class was not initialized properly.


  • Updating to latest WSC.
  • Updating to latest phings.
  • Updating .build.props file.
  • Updating Git dotfiles.


  • Adding support for ReST action API versions.
  • Adding brand URLs for API, CDN, and stats.
  • Adding new brand URL utilities for API, CDN, and stats.
  • Updating API calls back to wpsharks.com for licensing.
  • Adding support for custom fatal error messages associated w/ AJAX and API calls.
  • Adding REST_ACTION_API_VERSION constant to base App class.
  • Forcing an API version into all API action URLs.
  • Upgrading to the latest websharks/core release.
  • Future-proofing WC utility methods.


  • Enhancing action vars.


  • Upgrading to latest websharks/core.


  • Upgrading to latest websharks/core w/ enhanced output utils.


  • Updating to latest core with enhanced MailChimp utils.


  • Updating to latest core with MailChimp utils.
  • Enhancing ReST action utilities.



  • Updating to websharks/core v160620.27266.


  • Moving Order Item utilities from s2X to the WPSC.


  • Bug fix. Should not fail on missing $report.
  • Refactoring. doingAction() now doingRestAction() to avoid confusion w/ hooks.


  • Enhancing actions, fatalities, updater, and more.
  • Updating to the latest websharks/core.


  • Updating to latest websharks/core.


  • Updating dotfiles.
  • Improving default App->onSetupOtherHooks() handler.
  • Updating to the latest release of websharks/core.


  • Delay license key request until after the welcome notification.
  • Adding several new configurable options for notices.
  • Enhance PostsQuery to allow for nested lists that show parent/child relationships.


  • Bumping to websharks/core v160601.61090.
  • Enhancing/refactoring action handlers and exposing them to plugins.
  • Adding notice on installation to collect license key for pro software.
  • Bug in notice utilities that was preventing success notice types from working as intended.


  • Updating phing build system.
  • Updating to latest websharks/core.


  • First public release.

Open in New TabProduct Release Archive

Latest Stable Release

We strongly suggest that you always run the latest stable release.

June 23rd, 2017@ 4:23 pm UTC (stable)v170623.59000.zip (4.7 MB)

Latest Bleeding Edge

Please be warned. This is beta quality. It may contain bugs or even bring down your site.

November 21st, 2017@ 9:34 am UTC (unstable)bleeding-edge.zip

Historical Release Archive

If you're having trouble with the latest stable release, you can revert back to a previous release.

April 20th, 2017@ 4:06 am UTC (stable)v170420.14768.zip (5.01 MB)
April 17th, 2017@ 12:05 pm UTC (stable)v170417.43553.zip (4.99 MB)
March 29th, 2017@ 5:47 am UTC (stable)v170329.20871.zip (4.97 MB)
March 11th, 2017@ 11:59 am UTC (stable)v170311.43193.zip (1.76 MB)
February 26th, 2017@ 8:59 am UTC (stable)v170226.32361.zip (1.73 MB)
February 19th, 2017@ 5:11 am UTC (stable)v170219.18660.zip (1.73 MB)
February 18th, 2017@ 8:47 am UTC (stable)v170218.31677.zip (1.73 MB)
January 24th, 2017@ 8:27 pm UTC (stable)v170124.73639.zip (1.7 MB)
October 26th, 2016@ 1:13 pm UTC (stable)v161026.47592.zip (1.79 MB)
September 20th, 2016@ 3:45 am UTC (stable)v160920.13502.zip (1.76 MB)
August 31st, 2016@ 3:00 pm UTC (stable)v160831.54041.zip (1.76 MB)
August 28th, 2016@ 7:00 am UTC (stable)v160828.25227.zip (1.76 MB)
August 27th, 2016@ 2:02 am UTC (stable)v160827.7334.zip (1.76 MB)
August 1st, 2016@ 9:29 am UTC (stable)v160801.34158.zip (1.75 MB)
August 1st, 2016@ 12:44 am UTC (stable)v160801.2694.zip (1.75 MB)
July 31st, 2016@ 10:22 am UTC (stable)v160731.37352.zip (1.75 MB)
July 26th, 2016@ 9:24 pm UTC (stable)v160726.77065.zip (1.74 MB)
July 24th, 2016@ 6:00 pm UTC (stable)v160724.64804.zip (1.72 MB)
July 24th, 2016@ 12:27 am UTC (stable)v160724.1675.zip (1.72 MB)
July 21st, 2016@ 4:19 pm UTC (stable)v160721.58752.zip (1.72 MB)
July 20th, 2016@ 8:42 am UTC (stable)v160720.31351.zip (1.71 MB)
July 19th, 2016@ 10:53 am UTC (stable)v160719.39226.zip (1.71 MB)
July 18th, 2016@ 2:56 pm UTC (stable)v160718.53795.zip (3.96 MB)
July 16th, 2016@ 12:58 pm UTC (stable)v160716.46700.zip (3.96 MB)
July 15th, 2016@ 9:26 am UTC (stable)v160715.33981.zip (3.95 MB)
July 15th, 2016@ 8:38 am UTC (stable)v160715.31125.zip (3.95 MB)
July 14th, 2016@ 10:16 am UTC (stable)v160714.36962.zip (3.95 MB)
July 14th, 2016@ 10:04 am UTC (stable)v160714.36264.zip (3.95 MB)
July 14th, 2016@ 7:29 am UTC (stable)v160714.26941.zip (3.95 MB)
July 13th, 2016@ 11:05 am UTC (stable)v160713.39957.zip (3.9 MB)
July 9th, 2016@ 7:43 am UTC (stable)v160709.27823.zip (3.63 MB)
July 9th, 2016@ 6:50 am UTC (stable)v160709.24636.zip (3.63 MB)
July 6th, 2016@ 5:54 pm UTC (stable)v160706.64464.zip (3.63 MB)
July 5th, 2016@ 11:01 pm UTC (stable)v160705.82876.zip (3.63 MB)
July 5th, 2016@ 4:49 pm UTC (stable)v160705.60576.zip (3.63 MB)
July 5th, 2016@ 6:06 am UTC (stable)v160705.21987.zip (3.63 MB)
July 5th, 2016@ 4:34 am UTC (stable)v160705.16466.zip (3.63 MB)
July 3rd, 2016@ 8:02 pm UTC (stable)v160703.72161.zip (3.63 MB)
July 3rd, 2016@ 7:50 pm UTC (stable)v160703.71419.zip (3.63 MB)
July 2nd, 2016@ 6:05 pm UTC (stable)v160702.65139.zip (3.62 MB)
July 1st, 2016@ 4:04 pm UTC (stable)v160701.57880.zip (3.62 MB)
July 1st, 2016@ 8:48 am UTC (stable)v160701.31729.zip (3.62 MB)
June 30th, 2016@ 7:13 pm UTC (stable)v160630.69234.zip (3.62 MB)
June 29th, 2016@ 4:43 pm UTC (stable)v160629.60185.zip (3.62 MB)
June 25th, 2016@ 4:46 pm UTC (stable)v160625.60388.zip (3.64 MB)
June 24th, 2016@ 10:38 am UTC (stable)v160624.38294.zip (3.64 MB)
June 24th, 2016@ 9:17 am UTC (stable)v160624.33470.zip (3.64 MB)
June 22nd, 2016@ 11:50 pm UTC (stable)v160622.85801.zip (3.64 MB)
June 21st, 2016@ 11:43 am UTC (stable)v160621.42233.zip (3.64 MB)