function rmag_custom_fields() { global $wpdb; rcl_sortable_scripts(); include_once RCL_PATH . 'functions/rcl_editfields.php'; $f_edit = new Rcl_EditFields('orderform'); if ($f_edit->verify()) { $fields = $f_edit->update_fields(); } $content = '<h2>Управление полями Формы заказа</h2> ' . $f_edit->edit_form(array($f_edit->option('select', array('name' => 'requared', 'notice' => 'обязательное поле', 'value' => array('Нет', 'Да'))))); echo $content; }
function rcl_manage_profile_fields() { rcl_sortable_scripts(); if (!class_exists('Rcl_EditFields')) { include_once RCL_PATH . 'functions/rcl_editfields.php'; } $f_edit = new Rcl_EditFields('profile'); $default_form = ''; $profile_default_fields = rcl_get_default_fields_profile(); if ($f_edit->verify()) { $f_edit->update_fields('usermeta'); $_posts = $_POST; $save_data = array(); foreach ($profile_default_fields as $filed) { if (isset($_posts[$filed['id']]) && $_posts[$filed['id']] == 'on') { array_push($save_data, $filed['id']); } } update_option('show_defolt_field', $save_data); } $profile_default_fields_styles = "\n\t\t<style>\n\t\t#inputs_user_fields table {\n\t\t\tcursor: move;\n\t\t\tbackground:#fafafa;\n\t\t\tborder: 1px solid #CCCCCC;\n\t\t\tborder-radius: 5px 5px 5px 5px;\n\t\t\tmargin: 2px;\n\t\t\twidth: 100%;\n\t\t\t}\n\t\ttable td {\n\t\t\tpadding: 2px 10px;\n\t\t\t}\n\t\t#inputs_user_fields textarea {\n\t\t\twidth:100%;\n\t\t\t}\n\t\t.two-col {\n\t\t\twidth:20%;\n\t\t\t}\n\t\t#inputs_user_fields .new {\n\t\t\tbackground:yellow;\n\t\t\tcursor: default;\n\t\t\t}\n\t\t</style>"; if (sizeof($profile_default_fields) > 0) { $default_form .= apply_filters('rcl_profile_default_fields_styles', $profile_default_fields_styles); $default_form .= '<p>' . __('Fields to display in the profile note ticks.', 'wp-recall') . '</p>'; $default_form .= '<table class="form-table" style="width:600px;">'; $field_loop = $loop = 0; foreach ($profile_default_fields as $field) { $field_loop++; if (0 == ($field_loop - 1) % 2) { $default_form .= '<tr class="rcl_defoult_row">'; } $df_field = get_option('show_defolt_field'); $checked = $df_field && in_array($field['id'], $df_field) ? 'checked="checked"' : ''; $default_form .= sprintf(__('<td><input type="%s" name="%s" %s /></td><td>%s</td>', 'wp-recall'), $field['type'], $field['id'], $checked, $field['label']); if (0 == $field_loop % 2 || $field_loop == count($profile_default_fields)) { $default_form .= '</tr><!-- End .rcl_defoult_row -->'; } $loop++; } $default_form .= '</table>'; } $users_fields = '<h2>' . __('Manage profile fields', 'wp-recall') . '</h2>' . $f_edit->edit_form(array($f_edit->option('select', array('name' => 'requared', 'notice' => __('required field', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall')))), $f_edit->option('select', array('name' => 'register', 'notice' => __('to display the registration form', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall')))), $f_edit->option('select', array('name' => 'order', 'notice' => __('display at checkout for guests', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall')))), $f_edit->option('select', array('name' => 'req', 'notice' => __('to show the content to other users', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall')))), $f_edit->option('select', array('name' => 'admin', 'notice' => __('it only changes the administration of the site', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall'))))), $default_form); echo $users_fields; }
function rcl_manage_publicform() { global $wpdb; rcl_sortable_scripts(); $form = isset($_GET['form']) ? $_GET['form'] : false; if (isset($_POST['delete-form']) && wp_verify_nonce($_POST['_wpnonce'], 'update-public-fields')) { $id_form = intval($_POST['id-form']); $_GET['status'] = 'old'; $wpdb->query($wpdb->prepare("DELETE FROM " . $wpdb->prefix . "options WHERE option_name LIKE 'custom_public_fields_%d'", $id_form)); } if (!$form) { $option_name = $wpdb->get_var("SELECT option_name FROM " . $wpdb->prefix . "options WHERE option_name LIKE 'custom_public_fields%'"); if ($option_name) { $form = preg_replace("/[a-z_]+/", '', $option_name); } else { $form = 1; } } include_once RCL_PATH . 'functions/rcl_editfields.php'; $f_edit = new Rcl_EditFields('post', array('id' => $form, 'custom-slug' => 1, 'terms' => 1)); if ($f_edit->verify()) { $_GET['status'] = 'old'; $fields = $f_edit->update_fields(); } $custom_public_form_data = $wpdb->get_results("SELECT * FROM " . $wpdb->prefix . "options WHERE option_name LIKE 'custom_public_fields%' ORDER BY option_id ASC"); if ($custom_public_form_data) { $form_navi = '<h3>' . __('Available forms', 'wp-recall') . '</h3><div class="form-navi">'; foreach ((array) $custom_public_form_data as $form_data) { $id_form = preg_replace("/[a-z_]+/", '', $form_data->option_name); if ($form == $id_form) { $class = 'button-primary'; } else { $class = 'button-secondary'; } $form_navi .= '<input class="' . $class . '" type="button" onClick="document.location=\'' . admin_url('admin.php?page=manage-public-form&form=' . $id_form) . '\';" value="ID:' . $id_form . '" name="public-form-' . $id_form . '">'; } if (!isset($_GET['status']) || $_GET['status'] != 'new') { $form_navi .= '<input class="button-secondary" type="button" onClick="document.location=\'' . admin_url('admin.php?page=manage-public-form&form=' . ++$id_form . '&status=new') . '\';" value="' . __('To add another form') . '" name="public-form-' . $id_form . '">'; } $form_navi .= '</div> <h3>' . __('Form ID', 'wp-recall') . ':' . $form . ' </h3>'; if (!isset($_GET['status']) || $_GET['status'] != 'new') { $form_navi .= '<form method="post" action=""> ' . wp_nonce_field('update-public-fields', '_wpnonce', true, false) . ' <input class="button-primary" type="submit" value="' . __('To remove all fields', 'wp-recall') . '" onClick="return confirm(\'' . __('Вы уверены?', 'wp-recall') . '\');" name="delete-form"> <input type="hidden" value="' . $form . '" name="id-form"> </form>'; } } else { $form = 1; $form_navi = '<h3>' . __('Form ID', 'wp-recall') . ':' . $form . ' </h3>'; } $users_fields = '<h2>' . __('Arbitrary form fields publishing', 'wp-recall') . '</h2> <small>Для размещения формы публикации используем шорткод [public-form]</small><br> <small>Можно создавать разный набор произвольных полей для разных форм.<br> Чтобы вывести определенный набор полей через шорткод следует указать идентификатор формы, например, [public-form id="2"]</small><br> <small>Форма публикации уже содержит обязательные поля для заголовка записи, контента, ее категории и указания метки.</small><br> ' . $form_navi . ' ' . $f_edit->edit_form(array($f_edit->option('select', array('name' => 'requared', 'notice' => __('required field', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall')))))) . ' <p>Чтобы вывести все данные занесенные в созданные произвольные поля формы публикации внутри опубликованной записи можно воспользоваться функцией<br /> <b>rcl_get_custom_post_meta($post_id)</b><br /> Разместите ее внутри цикла и передайте ей идентификатор записи первым аргументом<br /> Также можно вывести каждое произвольное поле в отдельности через функцию<br /> <b>get_post_meta($post_id,$slug,1)</b><br /> где<br /> $post_id - идентификатор записи<br /> $slug - ярлык произвольного поля формы</p>'; echo $users_fields; }