Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
advanced-custom-fields
/
includes
/
forms
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php if (!class_exists('acf_form_comment')) { class acf_form_comment { function __construct() { add_action('admin_enqueue_scripts', array($this, 'admin_enqueue_scripts')); add_filter('comment_form_field_comment', array($this, 'comment_form_field_comment'), 999, 1); add_action('edit_comment', array($this, 'save_comment'), 10, 1); add_action('comment_post', array($this, 'save_comment'), 10, 1); } function validate_page() { global $pagenow; if ($pagenow == 'comment.php') { return true; } return false; } function admin_enqueue_scripts() { if (!$this->validate_page()) { return; } acf_enqueue_scripts(); add_action('admin_footer', array($this, 'admin_footer'), 10, 1); add_action('add_meta_boxes_comment', array($this, 'edit_comment'), 10, 1); } function edit_comment($comment) { $post_id = "comment_{$comment->comment_ID}"; $field_groups = acf_get_field_groups(array('comment' => get_post_type($comment->comment_post_ID))); if (!empty($field_groups)) { acf_form_data(array('screen' => 'comment', 'post_id' => $post_id)); foreach ($field_groups as $field_group) { $fields = acf_get_fields($field_group); $o = array('id' => 'acf-' . $field_group['ID'], 'key' => $field_group['key'], 'label' => $field_group['label_placement'], 'edit_url' => '', 'edit_title' => __('Edit field group', 'acf')); if ($field_group['ID'] && acf_current_user_can_admin()) { $o['edit_url'] = admin_url('post.php?post=' . $field_group['ID'] . '&action=edit'); } ?> <div id="acf-<?php echo $field_group['ID']; ?>" class="stuffbox"> <h3 class="hndle"><?php echo $field_group['title']; ?></h3> <div class="inside"> <?php acf_render_fields($fields, $post_id, 'div', $field_group['instruction_placement']); ?> <script type="text/javascript"> if( typeof acf !== 'undefined' ) { acf.newPostbox(<?php echo json_encode($o); ?>); } </script> </div> </div> <?php } } } function comment_form_field_comment($html) { global $post; $post_id = false; $field_groups = acf_get_field_groups(array('comment' => $post->post_type)); if (!$field_groups) { return $html; } acf_enqueue_scripts(); ob_start(); acf_form_data(array('screen' => 'comment', 'post_id' => $post_id)); echo '<div class="acf-comment-fields acf-fields -clear">'; foreach ($field_groups as $field_group) { $fields = acf_get_fields($field_group); acf_render_fields($fields, $post_id, 'p', $field_group['instruction_placement']); } echo '</div>'; $html .= ob_get_contents(); ob_end_clean(); return $html; } function save_comment($comment_id) { if (!acf_verify_nonce('comment')) { return $comment_id; } if (isset($_POST['acf'])) { $_POST['acf'] = wp_kses_post_deep($_POST['acf']); } if (acf_validate_save_post(true)) { acf_save_post("comment_{$comment_id}"); } } function admin_footer() { ?> <script type="text/javascript"> (function($) { // vars var $spinner = $('#publishing-action .spinner'); // create spinner if not exists (may exist in future WP versions) if( !$spinner.exists() ) { // create spinner $spinner = $('<span class="spinner"></span>'); // append $('#publishing-action').prepend( $spinner ); } })(jQuery); </script> <?php } } new acf_form_comment(); }