_init(); } private function _init() { add_action('init', array($this, 'include_files')); add_action('init', array($this, 'ajax_actions')); } public function include_files() { if ( defined( 'WPML_PLUGIN_BASENAME' ) ) { $this->elements[] = 'Languages'; } require_once WOODMART_HB_DIR . 'elements/abstract/Element.php'; foreach ($this->elements as $class) { $path = WOODMART_HB_DIR . 'elements/' . $class . '.php'; if( file_exists( $path ) ) { require_once $path; $class_name = 'WOODMART_HB_' . $class; $this->elements_classes[ $class ] = new $class_name(); } } } public function ajax_actions() { add_action( 'wp_ajax_woodmart_get_builder_elements', array($this, 'get_elements_ajax') ); } public function get_elements_ajax() { check_ajax_referer( 'woodmart-get-builder-elements-nonce', 'security' ); $elements = array(); foreach ($this->elements_classes as $el => $class) { $args = $class->get_args(); if( $args['addable'] ) $elements[] = $class->get_args(); } echo json_encode($elements); wp_die(); } } }