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;
}
Example #2
0
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;
}
Example #3
0
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;
}