filter_post_type_columns( $columns ); } ); add_action( "manage_{$slug}_posts_custom_column", function( string $column_name, int $post_id ) { $this->render_post_type_column( $column_name, $post_id ); }, 10, 2 ); if ( class_exists( 'Kadence_Blocks_Duplicate_Post' ) ) { new Kadence_Blocks_Duplicate_Post( self::SLUG ); } } if( is_admin() && class_exists( 'Kadence_Blocks_Cpt_Import_Export' ) ) { new Kadence_Blocks_Cpt_Import_Export( self::SLUG ); } } /** * Filters the block area post type columns in the admin list table. * * @since 0.1.0 * * @param array $columns Columns to display. * @return array Filtered $columns. */ private function filter_post_type_columns( array $columns ) : array { $add = array( 'description' => esc_html__( 'Description', 'kadence-blocks' ), ); if ( class_exists( 'Kadence_Blocks_Pro' ) ) { $add['entries'] = esc_html__( 'Entries', 'kadence-blocks' ); } else { $add['entries'] = esc_html__( 'Entries (Pro Only)', 'kadence-blocks' ); } $new_columns = array(); foreach ( $columns as $key => $label ) { $new_columns[ $key ] = $label; if ( 'title' == $key ) { $new_columns = array_merge( $new_columns, $add ); } } return $new_columns; } /** * Renders column content for the block area post type list table. * * @param string $column_name Column name to render. * @param int $post_id Post ID. */ private function render_post_type_column( string $column_name, int $post_id ) { if ( 'entries' !== $column_name && 'description' !== $column_name ) { return; } //$post = get_post( $post_id ); if ( 'description' === $column_name ) { $description = get_post_meta( $post_id, '_kad_form_description', true ); echo '
' . esc_html( $description ) . '
'; } if ( 'entries' === $column_name ) { if ( class_exists( 'Kadence_Blocks_Pro' ) && class_exists( 'KBP\Queries\Entry' ) ) { $entries = new KBP\Queries\Entry(); $args = array( 'status' => 'publish', 'number' => null, 'form_id' => $post_id, ); $results = $entries->query( $args ); $url = add_query_arg( array( 'form_id' => $post_id, ), get_admin_url( null, 'admin.php?page=kadence-blocks-entries' ) ); echo '' . count( $results ) . ''; } } } /** * Registers the form post type. */ public function register_post_type() { $labels = array( 'name' => _x( 'Forms', 'Post Type General Name', 'kadence-blocks' ), 'singular_name' => _x( 'Form', 'Post Type Singular Name', 'kadence-blocks' ), 'menu_name' => __( 'Forms', 'kadence-blocks' ), 'menu_name' => _x( 'Forms', 'Admin Menu text', 'kadence-blocks' ), 'archives' => __( 'Form Archives', 'kadence-blocks' ), 'attributes' => __( 'Form Attributes', 'kadence-blocks' ), 'parent_item_colon' => __( 'Parent Form:', 'kadence-blocks' ), 'all_items' => __( 'Forms', 'kadence-blocks' ), 'add_new_item' => __( 'Add New Form', 'kadence-blocks' ), 'add_new' => __( 'Add New Form', 'kadence-blocks' ), 'new_item' => __( 'New Form', 'kadence-blocks' ), 'edit_item' => __( 'Edit Form', 'kadence-blocks' ), 'update_item' => __( 'Update Form', 'kadence-blocks' ), 'view_item' => __( 'View Form', 'kadence-blocks' ), 'view_items' => __( 'View Forms', 'kadence-blocks' ), 'search_items' => __( 'Search Forms', 'kadence-blocks' ), 'not_found' => __( 'Not found', 'kadence-blocks' ), 'not_found_in_trash' => __( 'Not found in Trash', 'kadence-blocks' ), 'filter_items_list' => __( 'Filter items list', 'kadence-blocks' ), ); $rewrite = apply_filters( 'kadence_blocks_form_post_type_url_rewrite', array( 'slug' => 'kadence-form' ) ); $args = array( 'labels' => $labels, 'description' => __( 'Contact forms, subscribe forms and others for your site.', 'kadence_conversions' ), 'public' => false, 'publicly_queryable' => false, 'has_archive' => false, 'exclude_from_search' => true, 'show_ui' => true, 'show_in_menu' => 'kadence-blocks', 'show_in_nav_menus' => false, 'show_in_admin_bar' => false, 'can_export' => true, 'show_in_rest' => true, 'rewrite' => $rewrite, 'rest_controller_class' => Kadence_Blocks_Form_CPT_Rest_Controller::class, 'rest_base' => 'kadence_form', 'capability_type' => array( 'kadence_form', 'kadence_forms' ), 'map_meta_cap' => true, 'supports' => array( 'title', 'editor', 'author', 'custom-fields', 'revisions', ), ); register_post_type( self::SLUG, $args ); } /** * Renders the admin template. * * @param array $layout the layout array. */ public function single_form_layout( $layout ) { global $post; if ( is_singular( self::SLUG ) || ( is_admin() && is_object( $post ) && self::SLUG === $post->post_type ) ) { $layout = wp_parse_args( array( 'layout' => 'narrow', 'boxed' => 'unboxed', 'feature' => 'hide', 'feature_position' => 'above', 'comments' => 'hide', 'navigation' => 'hide', 'title' => 'hide', 'transparent' => 'disable', 'sidebar' => 'disable', 'vpadding' => 'hide', 'footer' => 'disable', 'header' => 'disable', 'content' => 'enable', ), $layout ); } return $layout; } /** * Add filters for element content output. */ public function form_gutenberg_template() { $post_type_object = get_post_type_object( self::SLUG ); $post_type_object->template = array( array( 'kadence/advanced-form', ), ); $post_type_object->template_lock = 'all'; } /** * Filters the capabilities of a user to conditionally grant them capabilities for managing forms. * * Any user who can 'edit_others_pages' will have access to manage forms. * * @param array $allcaps A user's capabilities. * @return array Filtered $allcaps. */ public function filter_post_type_user_caps( $allcaps ) { if ( isset( $allcaps['edit_others_pages'] ) ) { $allcaps['edit_kadence_forms'] = $allcaps['edit_others_pages']; $allcaps['edit_others_kadence_forms'] = $allcaps['edit_others_pages']; $allcaps['edit_published_kadence_forms'] = $allcaps['edit_others_pages']; $allcaps['edit_private_kadence_forms'] = $allcaps['edit_others_pages']; $allcaps['delete_kadence_forms'] = $allcaps['edit_others_pages']; $allcaps['delete_others_kadence_forms'] = $allcaps['edit_others_pages']; $allcaps['delete_published_kadence_forms'] = $allcaps['edit_others_pages']; $allcaps['delete_private_kadence_forms'] = $allcaps['edit_others_pages']; $allcaps['publish_kadence_forms'] = $allcaps['edit_others_pages']; $allcaps['read_private_kadence_forms'] = $allcaps['edit_others_pages']; } return $allcaps; } /** * Check that user can edit these. */ public function meta_auth_callback() { return current_user_can( 'edit_kadence_forms' ); } /** * Register Post Meta options */ public function register_meta() { register_post_meta( 'kadence_form', '_kad_form_fields', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'array', 'default' => array(), 'show_in_rest' => array( 'schema' => array( 'type' => 'array', 'items' => array( 'type' => 'object', 'properties' => array( 'uniqueID' => array( 'type' => 'string' ), 'name' => array( 'type' => 'string' ), 'label' => array( 'type' => 'string' ), 'type' => array( 'type' => 'string' ), ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_email', array( 'type' => 'object', 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'default' => array( 'emailTo' => '', 'subject' => '', 'fromEmail' => '', 'fromName' => '', 'replyTo' => 'email_field', 'cc' => '', 'bcc' => '', 'html' => true, ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'emailTo' => array( 'type' => 'string' ), 'subject' => array( 'type' => 'string' ), 'fromEmail' => array( 'type' => 'string' ), 'fromName' => array( 'type' => 'string' ), 'replyTo' => array( 'type' => 'string' ), 'cc' => array( 'type' => 'string' ), 'bcc' => array( 'type' => 'string' ), 'html' => array( 'type' => 'boolean' ) ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_mailerlite', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'group' => array(), 'map' => array(), ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'group' => array( 'type' => 'object', 'properties' => array( 'value' => array( 'type' => 'string' ), 'label' => array( 'type' => 'string' ), ), ), 'map' => array( 'type' => 'object', 'additionalProperties' => array( 'type' => 'string', ), ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_fluentcrm', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( "lists" => array(), "tags" => array(), "map" => array(), "doubleOptin" => false ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'lists' => array( 'type' => 'array' ), 'tags' => array( 'type' => 'array' ), 'map' => array( 'type' => 'object', 'additionalProperties' => array( 'type' => 'string', ), ), 'doubleOptin' => array( 'type' => 'boolean' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_sendinblue', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'lists' => array(), 'map' => array(), ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'lists' => array( 'type' => 'array', ), 'map' => array( 'type' => 'object', 'additionalProperties' => array( 'type' => 'string', ), ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_mailchimp', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'list' => array(), 'map' => array(), 'groups' => array(), 'tags' => array(), 'doubleOptin' => false, ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'list' => array( 'type' => 'object', 'properties' => array( 'value' => array( 'type' => 'string' ), 'label' => array( 'type' => 'string' ), ), ), 'map' => array( 'type' => 'object', 'additionalProperties' => array( 'type' => 'string', ), ), 'groups' => array( 'type' => 'array' ), 'tags' => array( 'type' => 'array' ), 'doubleOptin' => array( 'type' => 'boolean' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_getresponse', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'automation' => array(), 'tags' => array(), 'map' => array(), 'listMulti' => array(), 'doubleOptin' => false, ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'automation' => array( 'type' => 'object', 'properties' => array( 'value' => array( 'type' => 'string' ), 'label' => array( 'type' => 'string' ), ), ), 'tags' => array( 'type' => 'array' ), 'map' => array( 'type' => 'object', 'additionalProperties' => array( 'type' => 'string', ), ), 'listMulti' => array( 'type' => 'array' ), 'doubleOptin' => array( 'type' => 'boolean' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_convertkit', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'form' => array(), 'sequence' => array(), 'tags' => array(), 'map' => array(), ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'form' => array( 'type' => 'object', 'properties' => array( 'value' => array( 'type' => 'number' ), 'label' => array( 'type' => 'string' ), ), ), 'sequence' => array( 'type' => 'object', 'properties' => array( 'value' => array( 'type' => 'number' ), 'label' => array( 'type' => 'string' ), ), ), 'tags' => array( 'type' => 'array' ), 'map' => array( 'type' => 'object', 'additionalProperties' => array( 'type' => 'string', ), ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_activecampaign', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'list' => array(), 'automation' => array(), 'tags' => array(), 'map' => array(), 'listMulti' => array(), 'doubleOptin' => false, ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'list' => array( 'type' => 'object', 'properties' => array( 'value' => array( 'type' => 'string' ), 'label' => array( 'type' => 'string' ), ), ), 'automation' => array( 'type' => 'object', 'properties' => array( 'value' => array( 'type' => 'string' ), 'label' => array( 'type' => 'string' ), ), ), 'tags' => array( 'type' => 'array' ), 'map' => array( 'type' => 'object', 'additionalProperties' => array( 'type' => 'string', ), ), 'listMulti' => array( 'type' => 'array' ), 'doubleOptin' => array( 'type' => 'boolean' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_browserValidation', array( 'show_in_rest' => true, 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'boolean', 'default' => true, ) ); register_post_meta( 'kadence_form', '_kad_form_enableAnalytics', array( 'show_in_rest' => true, 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'boolean', 'default' => false, ) ); register_post_meta( 'kadence_form', '_kad_form_redirect', array( 'show_in_rest' => true, 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'string', 'default' => '', ) ); register_post_meta( 'kadence_form', '_kad_form_submitHide', array( 'show_in_rest' => true, 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'boolean', 'default' => false ) ); register_post_meta( 'kadence_form', '_kad_form_recaptcha', array( 'show_in_rest' => true, 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'boolean', 'default' => false ) ); register_post_meta( 'kadence_form', '_kad_form_recaptchaVersion', array( 'show_in_rest' => true, 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'string', 'default' => 'v3' ) ); register_post_meta( 'kadence_form', '_kad_form_webhook', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'url' => '', 'map' => array(), ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'url' => array( 'type' => 'string' ), 'map' => array( 'type' => 'object', 'additionalProperties' => array( 'type' => 'string', ), ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_autoEmail', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( "emailTo" => '', "subject" => '', "message" => '', "fromEmail" => '', "fromName" => '', "replyTo" => '', "cc" => '', "bcc" => '', "html" => true ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'emailTo' => array( 'type' => 'string' ), 'subject' => array( 'type' => 'string' ), 'message' => array( 'type' => 'string' ), 'fromEmail' => array( 'type' => 'string' ), 'fromName' => array( 'type' => 'string' ), 'replyTo' => array( 'type' => 'string' ), 'cc' => array( 'type' => 'string' ), 'bcc' => array( 'type' => 'string' ), 'html' => array( 'type' => 'boolean' ) ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_entry', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'userIP' => true, 'userDevice' => true, ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'userIP' => array( 'type' => 'boolean' ), 'userDevice' => array( 'type' => 'boolean' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_fieldBorderRadius', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( '', '', '', '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'array', 'properties' => array( '', '', '', '' ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_tabletFieldBorderRadius', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( '', '', '', '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'array', 'properties' => array( '', '', '', '' ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_mobileFieldBorderRadius', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( '', '', '', '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'array', 'properties' => array( '', '', '', '' ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_fieldBorderRadiusUnit', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => "px", 'show_in_rest' => array( 'schema' => array( 'type' => 'string', 'properties' => "px", ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_description', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'string', 'default' => '', 'show_in_rest' => array( 'schema' => array( 'type' => 'string' ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_fieldBorderStyle', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'top' => array( '', '', '' ), 'right' => array( '', '', '' ), 'bottom' => array( '', '', '' ), 'left' => array( '', '', '' ), 'unit' => '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'top' => array( 'type' => 'array' ), 'right' => array( 'type' => 'array' ), 'bottom' => array( 'type' => 'array' ), 'left' => array( 'type' => 'array' ), 'unit' => array( 'type' => 'string' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_tabletFieldBorderStyle', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'top' => array( '', '', '' ), 'right' => array( '', '', '' ), 'bottom' => array( '', '', '' ), 'left' => array( '', '', '' ), 'unit' => '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'top' => array( 'type' => 'array' ), 'right' => array( 'type' => 'array' ), 'bottom' => array( 'type' => 'array' ), 'left' => array( 'type' => 'array' ), 'unit' => array( 'type' => 'string' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_mobileFieldBorderStyle', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'top' => array( '', '', '' ), 'right' => array( '', '', '' ), 'bottom' => array( '', '', '' ), 'left' => array( '', '', '' ), 'unit' => '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'top' => array( 'type' => 'array' ), 'right' => array( 'type' => 'array' ), 'bottom' => array( 'type' => 'array' ), 'left' => array( 'type' => 'array' ), 'unit' => array( 'type' => 'string' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_messages', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( "success" => '', "error" => '', "required" => '', "invalid" => '', "recaptchaerror" => '', "preError" => '', ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'success' => array( 'type' => 'string' ), 'error' => array( 'type' => 'string' ), 'required' => array( 'type' => 'string' ), 'invalid' => array( 'type' => 'string' ), 'recaptchaerror' => array( 'type' => 'string' ), 'preError' => array( 'type' => 'string' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_inputFont', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( "color" => "", "colorActive" => "", "size" => array( "", "", "" ), "sizeType" => "px", "lineHeight" => array( "", "", "" ), "lineType" => "", "letterSpacing" => array( "", "", "" ), "letterType" => "", "textTransform" => "", "family" => "", "google" => false, "style" => "", "weight" => "", "variant" => "", "subset" => "", "loadGoogle" => true, "padding" => array( "", "", "", "" ), "margin" => array( "", "", "", "" ) ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'color' => array( 'type' => 'string' ), 'colorActive' => array( 'type' => 'string' ), 'size' => array( 'type' => 'array' ), 'sizeType' => array( 'type' => 'string' ), 'lineHeight' => array( 'type' => 'array' ), 'lineType' => array( 'type' => 'string' ), 'letterSpacing' => array( 'type' => 'array' ), 'letterType' => array( 'type' => 'string' ), 'textTransform' => array( 'type' => 'string' ), "family" => array( 'type' => 'string' ), 'google' => array( 'type' => 'boolean' ), 'style' => array( 'type' => 'string' ), 'weight' => array( 'type' => 'string' ), 'variant' => array( 'type' => 'string' ), 'subset' => array( 'type' => 'string' ), 'loadGoogle' => array( 'type' => 'boolean' ), 'padding' => array( 'type' => 'array' ), 'margin' => array( 'type' => 'array' ) ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_style', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'showRequired' => true, 'size' => 'standard', 'padding' => array( '', '', '', '' ), 'tabletPadding' => array( '', '', '', '' ), 'mobilePadding' => array( '', '', '', '' ), 'paddingUnit' => 'px', 'requiredColor' => '', 'background' => '', 'backgroundActive' => '', 'borderActive' => '', 'placeholderColor' => '', 'gradient' => '', 'gradientActive' => '', 'backgroundType' => 'normal', 'backgroundActiveType' => 'normal', 'boxShadow' => array( false, '#000000', 0.2, 1, 1, 2, 0, false ), 'boxShadowActive' => array( false, '#000000', 0.4, 2, 2, 3, 0, false ), 'gap' => array( '', '', '' ), 'gapUnit' => 'px', 'labelStyle' => 'normal', 'basicStyles' => true, 'isDark' => false, ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'showRequired' => array( 'type' => 'boolean' ), 'size' => array( 'type' => 'string' ), 'padding' => array( 'type' => 'array' ), 'tabletPadding' => array( 'type' => 'array' ), 'mobilePadding' => array( 'type' => 'array' ), 'paddingUnit' => array( 'type' => 'string' ), 'requiredColor' => array( 'type' => 'string' ), 'background' => array( 'type' => 'string' ), 'backgroundActive' => array( 'type' => 'string' ), 'borderActive' => array( 'type' => 'string' ), 'placeholderColor' => array( 'type' => 'string' ), 'gradient' => array( 'type' => 'string' ), 'gradientActive' => array( 'type' => 'string' ), 'backgroundType' => array( 'type' => 'string' ), 'backgroundActiveType' => array( 'type' => 'string' ), 'boxShadow' => array( 'type' => 'array' ), 'boxShadowActive' => array( 'type' => 'array' ), 'gap' => array( 'type' => 'array' ), 'gapUnit' => array( 'type' => 'string' ), 'labelStyle' => array( 'type' => 'string' ), 'basicStyles' => array( 'type' => 'boolean' ), 'isDark' => array( 'type' => 'boolean' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_background', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'background' => '', 'gradient' => '', 'backgroundType' => 'normal', ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'background' => array( 'type' => 'string' ), 'gradient' => array( 'type' => 'string' ), 'backgroundType' => array( 'type' => 'string' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_labelFont', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( "color" => "", "size" => array( "", "", "" ), "sizeType" => "px", "lineHeight" => array( "", "", "" ), "lineType" => "", "letterSpacing" => array( "", "", "" ), "letterType" => "px", "textTransform" => "", "family" => "", "google" => false, "style" => "", "weight" => "", "variant" => "", "subset" => "", "loadGoogle" => true, "padding" => array( "", "", "", "" ), "margin" => array( "", "", "", "" ) ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'color' => array( 'type' => 'string' ), 'size' => array( 'type' => 'array' ), 'sizeType' => array( 'type' => 'string' ), 'lineHeight' => array( 'type' => 'array' ), 'lineType' => array( 'type' => 'string' ), 'letterSpacing' => array( 'type' => 'array' ), 'letterType' => array( 'type' => 'string' ), 'textTransform' => array( 'type' => 'string' ), "family" => array( 'type' => 'string' ), 'google' => array( 'type' => 'boolean' ), 'style' => array( 'type' => 'string' ), 'weight' => array( 'type' => 'string' ), 'variant' => array( 'type' => 'string' ), 'subset' => array( 'type' => 'string' ), 'loadGoogle' => array( 'type' => 'boolean' ), 'padding' => array( 'type' => 'array' ), 'margin' => array( 'type' => 'array' ) ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_radioLabelFont', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'color' => '', 'size' => array( '', '', '' ), 'sizeType' => 'px', 'lineHeight' => array( '', '', '' ), 'lineType' => '', 'letterSpacing' => array( '', '', '' ), 'letterType' => 'px', 'textTransform' => '', 'family' => '', 'google' => false, 'style' => '', 'weight' => '', 'variant' => '', 'subset' => '', 'loadGoogle' => true, ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'color' => array( 'type' => 'string' ), 'size' => array( 'type' => 'array' ), 'sizeType' => array( 'type' => 'string' ), 'lineHeight' => array( 'type' => 'array' ), 'lineType' => array( 'type' => 'string' ), 'letterSpacing' => array( 'type' => 'array' ), 'letterType' => array( 'type' => 'string' ), 'textTransform' => array( 'type' => 'string' ), 'family' => array( 'type' => 'string' ), 'google' => array( 'type' => 'boolean' ), 'style' => array( 'type' => 'string' ), 'weight' => array( 'type' => 'string' ), 'variant' => array( 'type' => 'string' ), 'subset' => array( 'type' => 'string' ), 'loadGoogle' => array( 'type' => 'boolean' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_helpFont', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( "color" => "", "size" => array( "", "", "" ), "sizeType" => "px", "lineHeight" => array( "", "", "" ), "lineType" => "", "letterSpacing" => array( "", "", ""), "letterType" => "px", "textTransform" => "", "family" => "", "google" => false, "style" => "", "weight" => "", "variant" => "", "subset" => "", "loadGoogle" => true, "padding" => array( "", "", "", "" ), "margin" => array( "", "", "", "" ) ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'color' => array( 'type' => 'string' ), 'size' => array( 'type' => 'array' ), 'sizeType' => array( 'type' => 'string' ), 'lineHeight' => array( 'type' => 'array' ), 'lineType' => array( 'type' => 'string' ), 'letterSpacing' => array( 'type' => 'array' ), 'letterType' => array( 'type' => 'string' ), 'textTransform' => array( 'type' => 'string' ), "family" => array( 'type' => 'string' ), 'google' => array( 'type' => 'boolean' ), 'style' => array( 'type' => 'string' ), 'weight' => array( 'type' => 'string' ), 'variant' => array( 'type' => 'string' ), 'subset' => array( 'type' => 'string' ), 'loadGoogle' => array( 'type' => 'boolean' ), 'padding' => array( 'type' => 'array' ), 'margin' => array( 'type' => 'array' ) ), ), ), ) ); $register_meta = array( array( 'key' => '_kad_form_anchor', 'default' => '', 'type' => 'string' ), array( 'key' => '_kad_form_className', 'default' => '', 'type' => 'string' ), array( 'key' => '_kad_form_actions', 'default' => array( 'email' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_padding', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_tabletPadding', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_mobilePadding', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_paddingUnit', 'default' => 'px', 'type' => 'string' ), array( 'key' => '_kad_form_margin', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_tabletMargin', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_mobileMargin', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_marginUnit', 'default' => 'px', 'type' => 'string' ), array( 'key' => '_kad_form_redirect', 'default' => '', 'type' => 'string', ), array( 'key' => '_kad_form_messageBorderRadius', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_tabletMessageBorderRadius', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_mobileMessageBorderRadius', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_messageBorderRadiusUnit', 'default' => 'px', 'type' => 'string' ), array( 'key' => '_kad_form_messagePadding', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_tableMessagePadding', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_mobileMessagePadding', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_messagePaddingUnit', 'default' => 'px', 'type' => 'string' ), array( 'key' => '_kad_form_messageMargin', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_tabletMessageMargin', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_mobileMessageMargin', 'default' => array( '', '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_messageMarginUnit', 'default' => 'px', 'type' => 'string' ), array( 'key' => '_kad_form_messageColor', 'default' => '', 'type' => 'string' ), array( 'key' => '_kad_form_messageBackground', 'default' => '', 'type' => 'string' ), array( 'key' => '_kad_form_messageColorError', 'default' => '', 'type' => 'string' ), array( 'key' => '_kad_form_messageBackgroundError', 'default' => '', 'type' => 'string' ), array( 'key' => '_kad_form_messageFont', 'default' => array( array( 'size' => array( '', '', '' ), 'sizetype' => 'px', 'lineHeight' => array( '', '', '' ), 'lineType' => '', 'letterSpacing' => array( '', '', ''), 'letterType' => 'px', 'textTransform' => '', 'family' => '', 'google' => false, 'style' => '', 'weight' => '', 'variant' => '', 'subset' => '', 'loadgoogle' => true ) ), 'type' => 'array', 'children_type' => 'object', 'properties' => array( 'size' => array( 'type' => 'array' ), 'sizetype' => array( 'type' => 'string' ), 'lineHeight' => array( 'type' => 'array' ), 'lineType' => array( 'type' => 'string' ), 'letterSpacing' => array( 'type' => 'array' ), 'letterType' => array( 'type' => 'string' ), 'textTransform' => array( 'type' => 'string' ), 'family' => array( 'type' => 'string' ), 'google' => array( 'type' => 'boolean' ), 'style' => array( 'type' => 'string' ), 'weight' => array( 'type' => 'string' ), 'variant' => array( 'type' => 'string' ), 'subset' => array( 'type' => 'string' ), 'loadgoogle' => array( 'type' => 'boolean' ), ) ), array( 'key' => '_kad_form_maxWidthUnit', 'default' => 'px', 'type' => 'string' ), array( 'key' => '_kad_form_maxWidth', 'default' => array( '', '', '' ), 'type' => 'array', 'children_type' => 'string' ), array( 'key' => '_kad_form_importId', 'default' => '', 'type' => 'string' ), ); register_post_meta( 'kadence_form', '_kad_form_messageBorderSuccess', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'top' => array( '', '', '' ), 'right' => array( '', '', '' ), 'bottom' => array( '', '', '' ), 'left' => array( '', '', '' ), 'unit' => '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'top' => array( 'type' => 'array' ), 'right' => array( 'type' => 'array' ), 'bottom' => array( 'type' => 'array' ), 'left' => array( 'type' => 'array' ), 'unit' => array( 'type' => 'string' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_tabletMessageBorderSuccess', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'top' => array( '', '', '' ), 'right' => array( '', '', '' ), 'bottom' => array( '', '', '' ), 'left' => array( '', '', '' ), 'unit' => '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'top' => array( 'type' => 'array' ), 'right' => array( 'type' => 'array' ), 'bottom' => array( 'type' => 'array' ), 'left' => array( 'type' => 'array' ), 'unit' => array( 'type' => 'string' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_mobileMessageBorderSuccess', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'top' => array( '', '', '' ), 'right' => array( '', '', '' ), 'bottom' => array( '', '', '' ), 'left' => array( '', '', '' ), 'unit' => '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'top' => array( 'type' => 'array' ), 'right' => array( 'type' => 'array' ), 'bottom' => array( 'type' => 'array' ), 'left' => array( 'type' => 'array' ), 'unit' => array( 'type' => 'string' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_messageBorderError', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'top' => array( '', '', '' ), 'right' => array( '', '', '' ), 'bottom' => array( '', '', '' ), 'left' => array( '', '', '' ), 'unit' => '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'top' => array( 'type' => 'array' ), 'right' => array( 'type' => 'array' ), 'bottom' => array( 'type' => 'array' ), 'left' => array( 'type' => 'array' ), 'unit' => array( 'type' => 'string' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_tabletMessageBorderError', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'top' => array( '', '', '' ), 'right' => array( '', '', '' ), 'bottom' => array( '', '', '' ), 'left' => array( '', '', '' ), 'unit' => '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'top' => array( 'type' => 'array' ), 'right' => array( 'type' => 'array' ), 'bottom' => array( 'type' => 'array' ), 'left' => array( 'type' => 'array' ), 'unit' => array( 'type' => 'string' ), ), ), ), ) ); register_post_meta( 'kadence_form', '_kad_form_mobileMessageBorderError', array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => 'object', 'default' => array( 'top' => array( '', '', '' ), 'right' => array( '', '', '' ), 'bottom' => array( '', '', '' ), 'left' => array( '', '', '' ), 'unit' => '' ), 'show_in_rest' => array( 'schema' => array( 'type' => 'object', 'properties' => array( 'top' => array( 'type' => 'array' ), 'right' => array( 'type' => 'array' ), 'bottom' => array( 'type' => 'array' ), 'left' => array( 'type' => 'array' ), 'unit' => array( 'type' => 'string' ), ), ), ), ) ); foreach ( $register_meta as $meta ) { if ( $meta['type'] === 'string' ) { $show_in_rest = true; } elseif ( $meta['type'] === 'array' ) { $show_in_rest = array( 'schema' => array( 'type' => $meta['type'], 'items' => array( 'type' => $meta['children_type'] ), ), ); if( !empty( $meta['properties']) ) { $show_in_rest = array_merge_recursive( $show_in_rest, array( 'schema' => array( 'items' => array( 'properties' => $meta['properties'] ) ) ) ); } } elseif ( $meta['type'] === 'object' ) { $show_in_rest = array( 'schema' => array( 'type' => $meta['type'], 'properties' => $meta['properties'] ), ); } register_post_meta( 'kadence_form', $meta['key'], array( 'single' => true, 'auth_callback' => array( $this, 'meta_auth_callback' ), 'type' => $meta['type'], 'default' => $meta['default'], 'show_in_rest' => $show_in_rest, ) ); } } } Kadence_Blocks_Form_CPT_Controller::get_instance(); add_filter( 'default_content', function ( $content, $post ) { if ( $post->post_type === 'kadence_form' ) { return serialize_block( [ 'blockName' => 'kadence/advanced-form', 'innerContent' => [], 'attrs' => [], ] ); } return $content; }, 10, 2 );