$value) { $screens[] = $key; } foreach ( $screens as $screen ) { /* only editors or administrator can display forms */ if( current_user_can('edit_others_pages') ) { if( $screen == 'acf' ){ $title_box = __( 'Display ACF Form', 'acf_frontend_display' ); }else{ $title_box = __( 'Display ACF Form', 'acf_frontend_display' ); } /* display ACF frontend metabox */ add_meta_box( 'myplugin_sectionid', $title_box, 'afd_frontend_meta_box_callback', $screen, 'side' ); } } } add_action( 'add_meta_boxes', 'afd_frontend_add_meta_box'); function afd_frontend_meta_box_callback( $post ) { /* create global guardian */ if( get_post_type( $post->ID ) == 'acf'){ $gloabal_guardian = false; //$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $global_prop = get_post_meta( $post->ID, '_meta_afd_form_global_prop', true ); if($global_prop == 'true'){ $global_prop = 'checked = "checked"'; }else{ $global_prop = ''; } $rule = get_post_meta($post->ID,'rule',true); if( $rule['param'] == 'page'){ $target_post_id = $rule['value']; $target_title = get_the_title($target_post_id); $target_link = get_bloginfo('home').'/wp-admin/post.php?post='.$target_post_id.'&action=edit'; } if( $rule['param'] == 'post_type'){ //$target_post_id = ; $target_title = $rule['value']; $target_link = get_bloginfo('home').'/wp-admin/edit.php?post_type='.$rule['value']; } ?>
/> Set as global to .

Set default global properties from ACF form: '.get_the_title($global_form_id).'
'; } $value_render = get_post_meta( $post->ID, '_meta_afd_form_render_box_key', true ); $value_alpaca = get_post_meta( $post->ID, '_meta_afd_form_render_box_alpaca', true ); if(esc_attr( $value_render ) == 'true'){ $checked = 'checked=checked'; }else{ $checked = ''; } if( (afd_form_permision() == true) || ($post->post_type == 'acf') ){ echo '
'; echo ''; echo ' '; echo '
'; echo ''; ?>
Clone global properties from:
post_type == 'acf'){ ?> '.__( 'Plugin website', 'acf_frontend_display' ).''; }else{ echo __( 'Add', 'acf_frontend_display' ).' '.__( 'ACF form', 'acf_frontend_display' ).' '.__( 'to this post', 'acf_frontend_display' ); } } // FORM ACTIONS FORCED MESSAGE /*if (!defined('Forms_actions')) { echo '
Install more Actions to your form here
'; }*/ } /** * When the post is saved, saves our custom data. *__( 'Install Advanced Custom Fields plugin', 'acf_frontend_display' ). * @param int $post_id The ID of the post being saved. */ function afd_save_meta_box_data( $post_id ) { /* * We need to verify this came from our screen and with proper authorization, * because the save_post action can be triggered at other times. */ // Check if our nonce is set. if ( ! isset( $_POST['afd_frontend_meta_box_nonce'] ) ) { return; } // Verify that the nonce is valid. if ( ! wp_verify_nonce( $_POST['afd_frontend_meta_box_nonce'], 'afd_frontend_meta_box' ) ) { return; } // If this is an autosave, our form has not been submitted, so we don't want to do anything. if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } // Check the user's permissions. if ( isset( $_POST['post_type'] ) && 'page' == $_POST['post_type'] ) { if ( ! current_user_can( 'edit_page', $post_id ) ) { return; } } else { if ( ! current_user_can( 'edit_post', $post_id ) ) { return; } } // Sanitize user input. $my_data_afd_render = sanitize_text_field( $_POST['afd_form_render_box_field'] ); $my_data_afd_alpaca = $_POST['afd_alpaca_data']; $my_data_afd_global_prop = $_POST['afd_global_prop']; // Update the meta field in the database. update_post_meta( $post_id, '_meta_afd_form_global_prop', $my_data_afd_global_prop ); update_post_meta( $post_id, '_meta_afd_form_render_box_key', $my_data_afd_render ); update_post_meta( $post_id, '_meta_afd_form_render_box_alpaca', $my_data_afd_alpaca ); // update globals into target post if(($_POST['afd_global_prop'] == true)&&($_POST['post_type']=='acf')){ $rule = get_post_meta($post_id,'rule',true); if( $rule['param'] == 'page'){ $target_post_id = $rule['value']; if($target_post_id != ''){ update_post_meta( $target_post_id, '_meta_afd_form_global_prop', $my_data_afd_global_prop ); update_post_meta( $target_post_id, '_meta_afd_form_render_box_key', $my_data_afd_render ); update_post_meta( $target_post_id, '_meta_afd_form_render_box_alpaca', $my_data_afd_alpaca ); } } if( $rule['param'] == 'post_type'){ // The Query global $post; $the_query = new WP_Query( array('post_type'=>$rule['value'])); // The Loop if ( $the_query->have_posts() ) { while ( $the_query->have_posts() ) { $the_query->the_post(); update_post_meta( $post->ID, '_meta_afd_form_global_prop', $my_data_afd_global_prop ); update_post_meta( $post->ID, '_meta_afd_form_render_box_key', $my_data_afd_render ); update_post_meta( $post->ID, '_meta_afd_form_render_box_alpaca', $my_data_afd_alpaca ); } } else { // no posts found } /* Restore original Post Data */ wp_reset_postdata(); } } } add_action( 'save_post', 'afd_save_meta_box_data' ); /* METABOX end ------------------------------------ */ /* DISPLAY filter ------------------------------------ */ function afd_add_form_to_frontend_page($content) { global $post; //$content = apply_filters('the_content', $post->post_content); //$content = str_replace(']]>', ']]>', $content); //return $content; $must_login_msg = '
'.__('Login to edit this post.').'
'; $login_as_author_msg = '
'.__('Login as author to edit this post.').'
'; $hash_expired_msg = '
'.__('Your activation link was expired.').'
'; $hash_ok_msg = '
'.__('Registration completed.').'
'; $user_not_confirmed = '
'.__('Your user isnt confirmed by activation link').'
'; // KEY param exist ------------------------------------------------------------- if($_GET['key'] != ''){ $args = json_decode( urldecode ( get_post_meta($post->ID,'_meta_afd_form_render_box_alpaca', true )), true ); //$user_data = get_userdata( $_GET['user'] ); //$code = sha1( $_GET['user'] . $user_data->user_registered ); if( $_GET['key'] == get_user_meta( $_GET['user'], '_activation_key', true )){ delete_user_meta( $_GET['user'], '_activation_key' ); wp_update_user( array ('ID' => $_GET['user'], 'role' => 'author' ) ) ; if($args['dependence_three'] == true){ $hash_ok_msg = '
'.$args['display_messages_hash_true'].'
'; } $content = $hash_ok_msg; if($_GET['redirect_id'] != ''){ wp_redirect(get_permalink($_GET['redirect_id'])); exit; } }else{ if($args['dependence_three'] == true){ $hash_expired_msg = '
'.$args['display_messages_hash_false'].'
'; } $content = $hash_expired_msg; } return $content; } // ---------------------------------------------------------------------------- /* check display guardian */ if( get_post_meta( $post->ID, '_meta_afd_form_render_box_key', true) == 'true'){ $args = json_decode( urldecode ( get_post_meta($post->ID,'_meta_afd_form_render_box_alpaca', true )), true ); $display_guardian = true; if($args['render_by_id'] != ''){ $display_guardian = false; } // EDIT MODE ------------------------------------------------------------- // Edit by author only if($args['display_edit'] == true) { if($_GET['edit'] == 'form'){ $current_user_id = get_current_user_id(); if($_GET['guid'] != $current_user_id){ $display_guardian = false; if($args['dependence_three'] == true){ $login_as_author_msg = '
'.$args['display_messages_author'].'
'; } echo $login_as_author_msg; } } } // LOGIN MODE ------------------------------------------------------------- // Display for login users if($args['display_login'] == true) { if ( !is_user_logged_in() ) { // user is logged out $display_guardian = false; if($args['dependence_three'] == true){ $must_login_msg = '
'.$args['display_messages_login'].'
'; } echo $must_login_msg; }else{ // user is logged in $current_user_id = get_current_user_id(); $user = new WP_User( $current_user_id ); if($user->roles[0]=='subscriber'){ $display_guardian = false; echo $args['dependence_three']; if($args['dependence_three'] == true){ $user_not_confirmed = '
'.$args['user_not_confirmed'].'
'; } echo $user_not_confirmed; } } } /* check form position */ if($_GET['edit'] != 'form'){ if($args['in_content_pos'] == 'after'){ echo '
'.$content.'
'; } } if($display_guardian == true){ unset($args['dependence_one']); afd_form_head(); wp_deregister_style( 'wp-admin' ); echo '
'; if( empty($args) == true){ /* afd_frontend_form() is afd_form() extended method */ afd_frontend_form(); //acf_form(); }else{ /* afd_frontend_form() is afd_form() extended method */ afd_frontend_form($args); //acf_form($args); } echo '
'; } if($args['render_by_id'] == true){ unset($args['dependence_one']); unset($args['dependence_two']); unset($args['dependence_three']); unset($args['dependence_ajax']); afd_form_head(); wp_deregister_style( 'wp-admin' ); ?> '.$content.'
'; } } return false; }else{ return $content; } } add_filter( 'the_content', 'afd_add_form_to_frontend_page', 6); function acf_js_init() { /* this actior included acf scripts with official documentation: */ /* http://www.advancedcustomfields.com/resources/create-a-front-end-form/ */ /* scripts list: 'jquery','jquery-ui-core','jquery-ui-tabs','jquery-ui-sortable','wp-color-picker','thickbox','media-upload','acf-input','acf-datepicker', */ /* style list: 'thickbox', 'wp-color-picker', 'acf-global', 'acf-input', 'acf-datepicker', */ global $post; if( get_post_meta( $post->ID, '_meta_afd_form_render_box_key', true) == 'true'){ /* Conditional Logic */ $path = plugins_url() . '/advanced-custom-fields/'; $output = ''; $output.=""; $output.=""; $output.= ''; echo $output; } } add_action('wp_head','acf_js_init');