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
[code lang=»shell»]git clone https://bitbucket.org/cehojac/antonella-framework-for-wp.git guardar-parametros
[/code]donde «guardar-parametros» es la carpeta del plugin
luego
[code lang=»bash»] cd guardar-parametrosphp antonella namespace PCP
[/code]
Le he puesto PCP por «Proyecto Cambiar Parametro» pero ustedes pueden poner el que quieran
Luego vamos a crear un controlador
[code lang=»bash»]php antonella make ParametrosController
[/code]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.
[code lang=»php»]/*
* Plugins option
* storage in database the option value
* Array (‘option_name’=>’default value’)
* @example [«example_data» => ‘foo’,]
* @return void
*/
public $plugin_options=[];
[/code]
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.
[code lang=»php»] public $plugin_options=[
‘valor1’=>»,
‘valor2’=>’algun valor’,
‘valor3’=>[‘pera’,’manzana’], //inclusive puedes guardar arrays
]; [/code]
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
[code lang=»php»]/*
* 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
[code]public $plugin_menu=[
[
«path» => [«page»],
«name» => «Guardar Parámetros»,
«function» => __NAMESPACE__.»ParametrosController::MostrarMenu»,
«icon» => «antonella-icon.png»,
«slug» => «guardar-parametros»,
]
];
[/code]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
[code lang=»php»]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;
}
[/code]
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
[code lang=»php»] function GuardarParametros(){
foreach($_POST as $key=>$data)
{
update_option($key,strip_tags($data));
}
} [/code]
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
[code lang=»php»] /*** POST data process
* get the post data and execute the function
* @example [‘post_data’=>’PCP::function’] */
public $post=[]; [/code]
reemplazamos y ponemos
[code lang=»php»] /*** POST data process
* get the post data and execute the function
* @example [‘post_data’=>’PCP::function’] */
public $post=[«guardar_parametros»=> __NAMESPACE__.»ParametrosController::GuardarParametros»]; [/code]
La parte final
Y ya está. sólo queda en la consola construir el zip para subir el plugin
[code lang=»bash»] php antonella makeup[/code]
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 compártelo.





