plug_dir = plugins_url(); $this->self_closed = false; $this->one_line = false; $this->shortcodes = array(); $this->autoload(); // init assets list // useless $this->assets = array( 'js' => array(), 'css' => array() ); } public function autoload() { $shortcodes = get_option( 'wpgrade_shortcodes_list' ); if ( empty( $shortcodes ) ) { $shortcodes = array( 'Arrow', 'Button', 'Columns', 'Heading', 'Icon', 'InfoBox', 'OpenTableReservations', 'ProgressBar', 'Quote', 'RestaurantMenu', 'Separator', 'Slider', 'Tabs', 'TeamMember', 'PixFields' ); } foreach ( $shortcodes as $file ) { $file_name = 'WpGradeShortcode_' . $file . '.php'; $file_path = WPGRADE_SHORTCODES_PATH . '/shortcodes/' . $file_name; if ( ! file_exists( $file_path ) ) { continue; } include_once( $file_path ); $shortcode_class = 'WpGradeShortcode_' . $file; $shortcode = new $shortcode_class(); // create a list of params needed for js to create the admin panel $this->shortcodes[ $shortcode_class ]["name"] = $shortcode->name; $this->shortcodes[ $shortcode_class ]["code"] = $shortcode->code; $this->shortcodes[ $shortcode_class ]["self_closed"] = $shortcode->self_closed; $this->shortcodes[ $shortcode_class ]["direct"] = $shortcode->direct; $this->shortcodes[ $shortcode_class ]["one_line"] = $shortcode->one_line; $this->shortcodes[ $shortcode_class ]["icon"] = $shortcode->icon; if ( $shortcode->direct == false ) { $this->shortcodes[ $shortcode_class ]["params"] = $shortcode->params; } } } public function get_shortcodes() { return $this->shortcodes; } public function get_code() { return $this->code; } public function load_backend_assets( $buttons ) { if ( ! empty( $this->backend_assets ) ) { $types = $this->backend_assets; foreach ( $types as $type => $assets ) { foreach ( $assets as $key => $asset ) { $path = WPGRADE_SHORTCODES_URL . $asset['path']; if ( $type == 'js' ) { wp_enqueue_script( $asset['name'], $path, $asset['deps'], '2.3.9', true ); } elseif ( $type == 'css' ) { wp_enqueue_style( $asset['name'], $path, $asset['deps'], '2.3.9' ); } } } } // do not modify buttons here ... we just add our scripts return $buttons; } public function load_frontend_assets() { if ( ! empty( $this->frontend_assets ) && $this->load_frontend_scripts == true ) { $types = $this->frontend_assets; foreach ( $types as $type => $assets ) { foreach ( $assets as $key => $asset ) { $path = WPGRADE_SHORTCODES_URL . $asset['path']; if ( $type == 'js' ) { wp_enqueue_script( $asset['name'], $path, $asset['deps'], '2.3.9', true ); } elseif ( $type == 'css' ) { wp_enqueue_style( $asset['name'], $path, $asset['deps'], '2.3.9' ); } } } } } public function get_clean_content( $content ) { $content = preg_replace( '#
#', '', $content ); // remove our temp brs return do_shortcode( $content ); } public function render_param( $param ) { $file_name = $param['type'] . '.php'; $file_path = WPGRADE_SHORTCODES_PATH . 'params/' . $file_name; if ( ! file_exists( $file_path ) ) { return '' . esc_html__( 'Inexistent param', 'pixcodes' ) . ''; } ob_start(); include( $file_path ); return ob_get_clean(); } } global $wpgrade_shortcodes; $wpgrade_shortcodes = new WpGradeShortcode();