Crear parámetros en tu plugin y guardarlos con Antonella Framework

Hoy vamos a tratar de crear parámetros en nuestro plugin. y vamos a guardarlos de forma fácil y sencilla con Antonella Framework.

Siempre desde el inicio

Vamos a crear el proyecto como siempre. Vamos a la carpeta donde tenemos los proyectos de Antonella framework y en la consola ponemos

git clone https://bitbucket.org/cehojac/antonella-framework-for-wp.git guardar-parametros

donde “guardar-parametros” es la carpeta del plugin

luego

cd guardar-parametros

php antonella namespace PCP

Le he puesto PCP por “Proyecto Cambiar Parametro” pero ustedes pueden poner el que quieran

Luego vamos a crear un controlador

php antonella make ParametrosController

Antonella creara un archivo llamado ParametrosControler.php en la carpeta src

Creamos los parametros

Ok. para crear los parametros es muy sencillo. solo debemos ir al archivo src/Config.php e ir a la linea 15 aprox.

/*
* Plugins option
* storage in database the option value
* Array ('option_name'=>'default value')
* @example ["example_data" => 'foo',]
* @return void
*/
public $plugin_options=[];

en $plugin_options vamos a crear los parametros que guardaremos en nuestro WP y si queremos le ponemos un valor por defecto para cuando el plugin se instale.

 

public $plugin_options=[

'valor1'=>'',

'valor2'=>'algun valor',

'valor3'=>['pera','manzana'], //inclusive puedes guardar arrays

];

Creamos el menú en el Escritorio de WordPress

Ok ahora vamos a crear una sección en el menú de Administración. Para ello vamos en el mismo archivo Config.php y buscamos la sección plugin menu

/*
* Plugin menu
* set your menu option here
*/
public $plugin_menu=[];

encontrarás código comentado, son ejemplos de como puedes crear este apartado. vamos a reemplazarlo y poner este array

public $plugin_menu=[
[

"path" => ["page"],
"name" => "Guardar Parámetros",
"function" => __NAMESPACE__."ParametrosController::MostrarMenu",
"icon" => "antonella-icon.png",
"slug" => "guardar-parametros",
]

];

Con esto vamos a crear dentro del menú de WordPress una sección llamada “Guardar Parámetros” y cuando entremos a esa sección ejecutaremos la función MostrarMenu dentro de la clase  ParametrosController.

Vamos a ParametrosController y dentro de la clase insertamos la funcion

public function MostrarMenu()
{
$valor1= get_option('valor1');
$html = <<<EOT
<form method="POST">
<h1>Guardar Parámetros</h1>
<div class="form-group">
<label for="valor1">Valor1</label>
<input type="text" class="form-control" id="valor1" name="valor1" value="{$valor1}">
<small id="emailHelp" class="form-text text-muted">Puedes poner aqui tu valor</small>
</div>
<button type="submit" name="guardar_parametros" class="btn btn-primary">Submit</button>
</form>
EOT;
return $html;
}

 

Recuerda que no debe haber espacio inicial entre los EOT. si buscas más información puedes verlo aquí https://stackoverflow.com/questions/1848945/best-practices-working-with-long-multiline-strings-in-php

En la parte $valor1 usamos una función de WordPress llamado get_option() y el valor que queremos obtener. en este caso valor1. la primera vez saldrá vacío porque no lo hemos definido en el config el valor por defecto.

Guardamos los valores

Ahora vamos a crear la función para obtener los valores y guardar los valores en WordPress. Esto lo hacemos dentro de la misma clase ParametrosController

function GuardarParametros()
{
foreach($_POST as $key=>$data)
{
update_option($key,strip_tags($data));
}
}

Ya por último vamos a decirle a Antonella que cuando venga una petición de post que tenga entre sus valores el name guardar_parametro (es mismo name que pusimos en el boton del formulario) se ejecute la funcion de GuardarParametros. Para ello vamos a config y buscamos el apartado POST

/**
* POST data process
* get the post data and execute the function
* @example ['post_data'=>'PCP::function']
*/
public $post=[];

reemplazamos y ponemos

/**
* POST data process
* get the post data and execute the function
* @example ['post_data'=>'PCP::function']
*/
public $post=["guardar_parametros"=> __NAMESPACE__."ParametrosController::GuardarParametros"];

La parte final

Y ya está. sólo queda en la consola construir el zip para subir el plugin

php antonella makeup

Lo que pasara al activar el plugin es que aparecerá esto

Al hacer submit guardará los datos en WordPress y nos devolverá al mismo formulario. ¿Genial no?

Os dejo el repositorio con el ejemplo para que lo puedan descargar y modificar a su gusto. El link esta aquí

Si te ha gustado compartelo.

Entrada anterior
Antonella Framework Crear un formulario y obtener sus datos
Entrada siguiente
Crear un shortcode con Antonella Framework

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo válida.
Necesita estar de acuerdo con los términos para continuar

Menú