<?php /** * Shortcode for Visual Composer * * @package visual-portfolio/vc */ if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class Visual_Portfolio_3rd_VC */ class Visual_Portfolio_3rd_VC { /** * Visual_Portfolio_3rd_VC constructor. */ public function __construct() { $this->init_hooks(); } /** * Hooks. */ public function init_hooks() { add_action( 'init', array( $this, 'add_shortcode' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); } /** * Enqueue script for frontend VC * * @param object $page - page object. */ public function admin_enqueue_scripts( $page ) { if ( 'post.php' === $page || 'post-new.php' === $page ) { Visual_Portfolio_Assets::enqueue_script( 'visual-portfolio-vc-frontend', 'build/assets/admin/js/vc-frontend' ); } } /** * Add shortcode to the visual composer */ public function add_shortcode() { if ( function_exists( 'vc_map' ) ) { // get all visual-portfolio post types. // Don't use WP_Query on the admin side https://core.trac.wordpress.org/ticket/18408 . $vp_query = get_posts( array( 'post_type' => 'vp_lists', 'posts_per_page' => -1, 'paged' => -1, 'update_post_meta_cache' => false, 'update_post_term_cache' => false, ) ); $data_vc = array(); foreach ( $vp_query as $post ) { $data_vc[] = array( $post->ID, '#' . $post->ID . ' - ' . $post->post_title ); } vc_map( array( 'name' => visual_portfolio()->plugin_name, 'base' => 'visual_portfolio', 'controls' => 'full', 'icon' => 'icon-visual-portfolio', 'params' => array( array( 'type' => 'dropdown', 'heading' => esc_html__( 'Select Layout', 'visual-portfolio' ), 'param_name' => 'id', 'value' => $data_vc, 'description' => '', 'admin_label' => true, ), array( 'type' => 'textfield', 'heading' => esc_html__( 'Custom Classes', 'visual-portfolio' ), 'param_name' => 'class', 'value' => '', 'description' => '', ), array( 'type' => 'css_editor', 'heading' => esc_html__( 'CSS', 'visual-portfolio' ), 'param_name' => 'vc_css', 'group' => esc_html__( 'Design Options', 'visual-portfolio' ), ), ), ) ); } } } new Visual_Portfolio_3rd_VC();