class Fieldmanager_Context_Submenu extends Fieldmanager_Context_Storable (View source)

Use fieldmanager to create arbitrary pages in the WordPress admin and save data primarily to options.

Properties

Fieldmanager_Field $fm

The base field associated with this context.

from  Fieldmanager_Context
string $uniqid

Unique ID of the form. Used for forms that are not built into WordPress.

from  Fieldmanager_Context
array $save_keys

Store the meta keys this field saves to, to catch naming conflicts.

from  Fieldmanager_Context
array $taxonomies_to_save

Taxonomies to save to.

from  Fieldmanager_Context_Storable
string $parent_slug

Parent of this submenu page.

string $page_title

Title of the page.

string $menu_title

Menu title.

string $capability

Capability required.

string $menu_slug

Menu slug.

string $submit_button_label

Only used for options pages.

string $updated_message

The "success" message displayed after options are saved. Defaults to "Options updated".

string $wp_option_autoload

For submenu pages, set autoload to true or false.

Methods

__construct(string $parent_slug, string $page_title, string $menu_title = null, string $capability = 'manage_options', string $menu_slug = null, Fieldmanager_Field $fm = null, bool $already_registered = false)

Create a submenu page out of a field.

string
nonce_key()

Get the nonce key for this field.

array
refresh_nonce(array $response)

Include a fresh nonce for this field in a response with refreshed nonces.

bool
is_valid_nonce()

Check if the nonce is valid. Returns false if the nonce is missing and throws an exception if it's invalid. If all goes well, returns true.

mixed
prepare_data(mixed $old_value = null, mixed $new_value = null, object $fm = null)

Prepare the data for saving.

string
render_field(array $args = array())

Render the field.

save(mixed $data = null)

Handle saving data for any context.

save_field(object $field, mixed $data)

Save a single field.

save_walk_children(object $field, mixed $data)

Walk group children to save when serialize_data => false.

mixed
load()

Handle loading data for any context.

mixed
load_field(object $field)

Load a single field.

mixed
load_walk_children(object $field)

Walk group children to load when serialize_data => false.

static string|array
sanitize_scalar_value(mixed $value)

Meta and options are always stored as strings, so it's best to ensure that scalar values get cast as strings to ensure that update_metadata() and update_option() are able to correctly compare the current value against the previous value.

string|array
get_data(int $data_id, string $option_name, bool $single = false)

Get option.

bool|int
add_data(int $data_id, string $option_name, string $option_value, bool $unique = false)

Add option.

mixed
update_data(int $data_id, string $option_name, string $option_value, string $option_prev_value = '')

Update option.

bool
delete_data(int $data_id, string $option_name, string $option_value = '')

Delete option.

register_submenu_page()

Register a submenu page with WordPress.

render_submenu_page()

Helper to attach element_markup() to add_meta_box(). Prints markup for options page.

handle_submenu_save()

Save a submenu page

bool
save_submenu_data(array $data = null)

Save the submenu data.

string
url()

Get the URL for this context's admin page. Mainly pulled from menu_page_url().

Details

__construct(string $parent_slug, string $page_title, string $menu_title = null, string $capability = 'manage_options', string $menu_slug = null, Fieldmanager_Field $fm = null, bool $already_registered = false)

Create a submenu page out of a field.

Parameters

string $parent_slug

Parent slug.

string $page_title

Page title.

string $menu_title

Menu title.

string $capability

Page capability.

string $menu_slug

Menu slug.

Fieldmanager_Field $fm

Base field.

bool $already_registered

Page already registered.

protected string nonce_key()

Get the nonce key for this field.

Return Value

string

array refresh_nonce(array $response)

Since: 1.3.0

Include a fresh nonce for this field in a response with refreshed nonces.

Parameters

array $response

Response data.

Return Value

array

Updated response data.

protected bool is_valid_nonce()

Check if the nonce is valid. Returns false if the nonce is missing and throws an exception if it's invalid. If all goes well, returns true.

Return Value

bool

protected mixed prepare_data(mixed $old_value = null, mixed $new_value = null, object $fm = null)

Prepare the data for saving.

Parameters

mixed $old_value

Optional. The previous value.

mixed $new_value

Optional. The new value for the field.

object $fm

Optional. The Fieldmanager_Field to prepare.

Return Value

mixed

The filtered and sanitized value, safe to save.

protected string render_field(array $args = array())

Render the field.

Parameters

array $args

{ Optional. Arguments to adjust the rendering behavior.

@type mixed $data The existing data to display with the field. If
                  absent, data will be loaded using
                  Fieldmanager_Context::_load().
@type boolean $echo Output if true, return if false. Default is true.

}

Return Value

string

if $args['echo'] == false.

protected save(mixed $data = null)

Handle saving data for any context.

Parameters

mixed $data

Data to save. Should be raw, e.g. POST data.

protected save_field(object $field, mixed $data)

Save a single field.

Parameters

object $field

Fieldmanager field.

mixed $data

Data to save.

Exceptions

FM_Developer_Exception

protected save_walk_children(object $field, mixed $data)

Walk group children to save when serialize_data => false.

Parameters

object $field

Fieldmanager field.

mixed $data

Data to save.

protected mixed load()

Handle loading data for any context.

Return Value

mixed

The loaded data.

protected mixed load_field(object $field)

Load a single field.

Parameters

object $field

The Fieldmanager field for which to load data.

Return Value

mixed

Data stored for that field in this context.

protected mixed load_walk_children(object $field)

Walk group children to load when serialize_data => false.

Parameters

object $field

Fieldmanager field for which to load data.

Return Value

mixed

Data stored for a singular field with serialized data, or array of data for a groups's children.

static string|array sanitize_scalar_value(mixed $value)

Since: 1.2.0

Meta and options are always stored as strings, so it's best to ensure that scalar values get cast as strings to ensure that update_metadata() and update_option() are able to correctly compare the current value against the previous value.

Parameters

mixed $value

Value being stored.

Return Value

string|array

If $value is scalar, a string is returned. Otherwise, $value returns untouched.

protected string|array get_data(int $data_id, string $option_name, bool $single = false)

Get option.

Parameters

int $data_id

The ID of the object holding the data, e.g. Post ID.

string $option_name

The option name.

bool $single

Optional. If true, only returns the first value found for the given data_key. This won't apply to every context. Default is false.

Return Value

string|array

The stored data. If no data is found, should return an empty string (""). {\get_post_meta()}.

See also

get_option().

protected bool|int add_data(int $data_id, string $option_name, string $option_value, bool $unique = false)

Add option.

Parameters

int $data_id

The ID of the object holding the data, e.g. Post ID.

string $option_name

The option name.

string $option_value

The option value.

bool $unique

Optional. If true, data will only be added if the object with the given $data_id doesn't already contain data for the given $data_key. This may not apply to every context. Default is false.

Return Value

bool|int

On success, should return the ID of the stored data (an integer, which will evaluate as true). If the $unique argument is set to true and data with the given key already exists, this should return false. {\add_post_meta()}.

See also

add_option().

protected mixed update_data(int $data_id, string $option_name, string $option_value, string $option_prev_value = '')

Update option.

Parameters

int $data_id

The ID of the object holding the data, e.g. Post ID.

string $option_name

The option name.

string $option_value

The option value.

string $option_prev_value Deprecated.

Return Value

mixed

Should return data id if the data doesn't exist, otherwise should return true on success and false on failure. If the value passed to this method is the same as the stored value, this method should return false. {\update_post_meta()}.

See also

update_option().

protected bool delete_data(int $data_id, string $option_name, string $option_value = '')

Delete option.

Parameters

int $data_id

The ID of the object holding the data, e.g. Post ID.

string $option_name

The option name.

string $option_value

The option value.

Return Value

bool

False for failure. True for success. {\delete_post_meta()}.

See also

delete_option().

register_submenu_page()

Register a submenu page with WordPress.

render_submenu_page()

Helper to attach element_markup() to add_meta_box(). Prints markup for options page.

handle_submenu_save()

Save a submenu page

bool save_submenu_data(array $data = null)

Save the submenu data.

Parameters

array $data

The new data.

Return Value

bool True.

string url()

Get the URL for this context's admin page. Mainly pulled from menu_page_url().

Return Value

string