Cómo crear un plugin de WordPress paso a paso, parte 3

Oct 18, 2023 | Backend Frontend Template Pro, Plugin, WordPress

En esta entrada aprendemos a guardar datos personalizados y recuperarlos usando el sistema de ajustes de WordPress, no será necesario crear tabla alguna de la base de datos.

Sin embargo a diferencia de la parte 1 y 2, aquí usaremos Backend Frontend Template Pro: the WordPress Plugin Template, porque un desarrollador quiere poder crear su idea y no pelearse con WordPress cada momento que se pone a trabajar, y gracias a la versión profesional de Backend Frontend Template ahorraremos cientos de horas en el desarrollo de nuestro plugin, y el tiempo es dinero.

Contenido de la guía:

Formulario de administración para los ajustes de WordPress

Para usar el sistema CRUD de ajustes de WordPress necesitaremos preparar una página de administración que llame al parcial: bft-admin-display-settings.php (los archivos que empiezan por “bft” se almacenan en otra ubicación diferente a tus parciales creados ex profeso) y el nombre de nuestro formulario de ajustes, que en este caso se llamará “our_settings”, por lo que el menú descrito en backend-frontend-template/admin/class-your-plugin-admin.php quedará así:

		
$this->admin_pages = [
	"first_page" => [
		"menu_title" => $this->__("First page"),
		"page_title" => $this->__("This is my first admin page"),
		"file" => "your-plugin-admin-display-first-page.php",
		"function" => "my_first_custom_function",
	],
	"second_page" => [
		"menu_title" => $this->__("Second page"),
		"page_title" => $this->__("This is my second admin page"),
		"file" => "your-plugin-admin-display-second-page.php",
		"function" => "my_first_custom_function",
	],
	"settings_page" => [
		"menu_title" => $this->__("Our settings"),
		"page_title" => $this->__("Form with the settings stored by WordPress"),
		"file" => "bft-admin-display-settings.php",
		"admin_page_settings_id" => "our_settings",
	],
];

En la misma página buscaremos la ubicación de $this->admin_settings y especificaremos los datos que queremos almacenar, para este ejemplo se ha usado un campo de text (campo por defecto), checkbox multiple y un select:

$this->admin_settings = [
	"our_settings" => [
		"title" =>  $this->__("Settings form"),
		"fields" => [
			"name" => [
				"title" => $this->__("Your Name"),
			],

			"hobbies" => [
				"title" => $this->__("What are your hobbies?"),
				"args" => [
					"type" => "checkbox",
					"multiple" => true,
					"options" => [
						"film" => $this->__("Films"),
						"serie" => $this->__("Series"),
						"videogame" => $this->__("Videogames"),
						"anime" => $this->__("Anime"),
						"manga" => $this->__("Manga"),
					],
				],
			],
			"opinion_guide" => [
				"title" => $this->__("Do you like this gide?"),
				"args" => [
					"type" => "select",
					"options" => [
						"yes" => $this->__("Yes"),
						"no" => $this->__("No"),
					],
				],
			],
		],
	],
];

Y ya tendremos listo el formulario automatizado:

Backend Frontend Template Pro: the WordPres Plugin Template: formulario automatizado de ajustes de WordPress

Acceder a los datos guardados por WordPress

WordPress ofrece funciones para ello, pero no separa los datos por plugin, ocasionando graves problemas en los datos almacenados. Es por ello que Backend Frontend Template Pro siempre anota el ID del plugin en el nombre de las variables, evitando todo problema, y siempre de forma totalmente transparente para que no tengas que pensar en ello.

Para acceder a los datos guardados por WordPress a través de BFT usaremos:

$a_variable = $this->option_field_get("field_id");
$this->update_option_field("field_id", "new string value");
$this->delete_option_field("field_id");

Nota: usar ‘update’ para crear un nuevo dato.

Ejemplo: vamos a leer el nombre en la función my_first_custom_function() que creamos en la parte 2

public function my_first_custom_function($args = array()) {
	$this->admin_permission_check();

	
	//your own programming
	$text_for_you_page = "Lorem Ipsum";
	$args["text_for_page"] = $text_for_you_page;

	$name = $this->option_field_get("name");

	if(is_null($name)) {
		$name = $this->__("Unspecified");
	}
	$args["name"] = $name;


	$this->admin_menu_page_display($args);
}

Sigue en la parte 4

¡No esperes y descubre más tutoriales en la sección 4 de la guía!

0 comentarios

Enviar un comentario

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

Utilizamos Cookies propias y de terceros para mejorar nuestros servicios y para ofrecerte una mejor experiencia (por ejemplo, mostrando publicidad personalizada) mediante el análisis de tus hábitos de navegación (por ejemplo, páginas visitadas). Puedes aceptar todas las cookies pulsando el botón “Aceptar”. Para configurarlas, obtener más información o rechazar su uso, haz click AQUÍ

Los ajustes de cookies en esta web están configurados para «permitir las cookies» y ofrecerte la mejor experiencia de navegación posible. Si sigues usando esta web sin cambiar tus ajustes de cookies o haces clic en «Aceptar», estarás dando tu consentimiento a esto.

Cerrar