Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
flexible-shipping-pro
/
vendor
/
wpdesk
/
wp-builder
/
src
/
Plugin
:
HookableParent.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace WPDesk\PluginBuilder\Plugin; trait HookableParent { /** * Hookable objects. * * @var array[Hookable] */ private $hookable_objects = array(); /** * Add hookable object. * * @param Hookable|HookablePluginDependant $hookable_object Hookable object. */ public function add_hookable( Hookable $hookable_object ) { if ( $hookable_object instanceof HookablePluginDependant ) { $hookable_object->set_plugin( $this ); } $this->hookable_objects[] = $hookable_object; } /** * Get hookable instance. * * @param string $class_name Class name. * * @return false|Hookable */ public function get_hookable_instance_by_class_name( $class_name ) { foreach ( $this->hookable_objects as $hookable_object ) { if ( $hookable_object instanceof $class_name ) { return $hookable_object; } } return false; } /** * Run hooks method on all hookable objects. */ protected function hooks_on_hookable_objects() { /** @var Hookable $hookable_object $hookable_object */ foreach ( $this->hookable_objects as $hookable_object ) { if ($hookable_object instanceof Conditional) { if ($hookable_object::is_needed()) { $hookable_object->hooks(); } } else { $hookable_object->hooks(); } } } }