premmerce/wordpress-sdk

Wordpress SDK for premmerce plugins

v2.1 2019-01-22 14:56 UTC

README

Premmerce wordpress SDK used in plugins generated by premmerce-dev-tools plugin.

FileManager

File manager is responsible for plugin resources(assets, views, paths) management. Class should be initialized with plugin main file full path as parameter.

params:

  • string $mainFile - main plugin file path
  • string $templatePath - theme directory to override plugin templates located in frontend directory
    $fileManager = new FileManager($mainFile);
    
    //V2
    $fileManager = new FileManager($mainFile, $templatePath);

includeTemplate

includeTemplate(string $template, array $variables = [])

params:

  • string $template - relative path to file
  • array $variables - array of variables used in template file

Includes template located in plugin views folder with passed variables in scope

Each template located in views/forntend directory can be overridden in theme in /plugin_name/ directory


$fileManager->includeTemplate('admin/index.php',['title' => 'My title']);

renderTemplate

renderTemplate(string $template, array $variables = [])

params:

  • string $template - relative path to file
  • array $variables - array of variables used in template file

Returns rendered template located in plugin views folder with passed variables in scope

Each template located in views/forntend directory can be overridden in theme in /plugin_name/ directory


$rendered = $fileManager->includeTemplate('admin/index.php',['title' => 'My title']);

locateAsset

locateAsset(string $file)

Returns asset url located in plugin assets folder

params:

  • string $template - relative path to file

$url = $fileManager->locateAsset('admin/css/style.css');

wp_enqueue_style('my_style', $fileManager->locateAsset('front/css/style.css'));

AdminNotifier

Class is responsible for displaying messages in admin area. AdminNotifier should be instantiated, before admin_notices action

push

Show message on admin_notices action

push(string $message, string $type = self::SUCCESS, bool $isDismissible = false)

params:

  • string $message - message text
  • string $type - message type, one of predefined constants: AdminNotifier::SUCCESS|AdminNotifier::ERROR|AdminNotifier::WARNING|AdminNotifier::INFO
  • bool $isDismissible - can user dismiss message

$notifier->push('Message text', AdminNotifier::SUCCESS, true)

flash

Save flash message to show during next request

flash(string $message, string $type = self::SUCCESS, bool $isDismissible = false)

params:

  • string $message - message text
  • string $type - message type, one of predefined constants: AdminNotifier::SUCCESS|AdminNotifier::ERROR|AdminNotifier::WARNING|AdminNotifier::INFO
  • bool $isDismissible - can user dismiss message

$notifier->flash('Message text', AdminNotifier::SUCCESS, true)

PluginInterface

The Interface that should be implemented by plugin main file

Changelog

V2

  • Added second parameter to FileManager __construct()
  • Added flash method to AdminNotifier