Extensión de ajustes

POM Events es dueño de su propia página de ajustes y expone su definición a través de un filtro, para que una integración pueda añadir secciones, pestañas o campos.

El filtro

add_filter( 'pom_events_settings', function ( $settings ) {
    // Inspect or extend the settings definition.
    return $settings;
}, 20 );

La definición es un array de secciones, cada una con pestañas y ajustes, con la forma que el framework de POM renderiza. La propia sección License del plugin se añade mediante este mismo filtro, lo que es un buen indicio de lo que admite.

Las secciones existentes

Área clave Contiene
General Si existe la funcionalidad de asistentes
Archive Tamaño de página, fechas, imágenes, mensaje de error
Single event Cabecera, título, enlace de calendario, volver atrás, cláusula del formulario, contenido relacionado
License La clave de suscripción

Añade tu propia sección en lugar de modificar una existente cuando puedas — sobrevive mejor a las actualizaciones y mantiene identificables tus campos.

Añadir una sección

add_filter( 'pom_events_settings', function ( $settings ) {
    if ( ! is_array( $settings ) ) {
        return $settings;
    }

    $settings['my_events_extras'] = array(
        'title'         => __( 'Extras', 'my-plugin' ),
        'allowed_roles' => array( 'administrator' ),
        'tab'           => array(
            'my_events_extras_tab' => array(
                'title'       => __( 'Extras', 'my-plugin' ),
                'description' => __( 'Additional event options.', 'my-plugin' ),
                'settings'    => array(
                    'my_events_extras' => array(
                        'title'                   => __( 'Options', 'my-plugin' ),
                        'requires_initialization' => true,
                    ),
                ),
            ),
        ),
    );

    return $settings;
}, 30 );

Los campos de un ajuste los proporciona un fields.php que devuelve un array de definiciones de campos, en el formato del propio framework, situado en el directorio de ajustes al que apunta la definición.

Leer un valor

Los ajustes se guardan en el espacio de nombres pom-events:

use POMFramework\POM_Framework_Settings;

$value = POM_Framework_Settings::get_setting_value(
    'pom-events',
    'events_archive',
    'posts_per_page',
    'number'
);

Los cuatro argumentos son el slug de la página, el grupo del ajuste, el nombre del campo y el tipo del campo. Pasa el mismo tipo con el que se declaró el campo, para que el valor almacenado se vuelva a sanear al leerlo.

Leer los valores propios de POM Events

Los identificadores que más probablemente necesites:

Grupo Campo
events_general disable_events_attendees_functionality
events_archive posts_per_page, hide_events_date, events_list_loader, events_list_default_thumbnail, events_error_message
events_single single_event_disable_subheader, single_event_display_title, single_event_hide_add_to_calendar, single_event_display_go_back, single_event_form_clause, single_event_form_privacy_policy_link, single_event_header_image, single_event_display_featured_image_in_content, single_event_related_content_label

Los valores de las casillas se leen como 'yes' o 'no', lo que conviene recordar al escribir condiciones.

La página de ajustes funciona sin el tema POM

A diferencia del tiempo de ejecución de eventos, la pantalla de ajustes, la sección de licencia y el actualizador se cargan independientemente del tema activo.

Por lo tanto, una integración que solo amplía los ajustes no necesita la protección del tema. Una integración que afecte a los eventos sí la necesita.

No guardes los ajustes en el espacio de nombres del tema

POM Events mantiene deliberadamente sus valores bajo su propio espacio de nombres. Añadir ajustes de eventos a las opciones del tema se rompería al cambiar de tema y no está admitido.