Avisos
Vaciar todo

Como modificar plugin y que no se sobreescriba al actualizar  

 
jacint
 jacint
Usuario activo

Hola, tengo un plugin "REDi Restaurant" que sirve para hacer reservas de mesas para mi restaurante, el tema es que lo guardo todo en su base de datos con un API y yo no tengo ningun dato en mi base de datos. Como necesito tenerlas en una tabla, me puse en contacto con el desarrollador y me dijo donde insertar el codigo dentro de una funcion en su plugin, el problema sera cuando se actualize, que se va a machacar todo.

No tengo grandes conocimientos, pero he leido algo de hooks o de snippets. Veo que el codigo que he añadido esta dentro de una función bastante larga.

Como lo hariais?

Citar
Respondido : 22/04/2020 9:14 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Jacint.

¿ Puedes indicarnos qué función es la que añadiste ?

Si es una función podrias crear un tema hijo de tu plantilla y añadir el código en el archivo Functions.php

-> https://www.webempresa.com/blog/crear-temas-hijo-child-themes-en-wordpress.html

 

Si lo tienes que realizar por Hooks se complica un poco:

https://github.com/Dinamiko/Wordpress-extensible-plugin-example/blob/master/addon-extensible-plugin.php

 

Un saludo

ResponderCitar
Respondido : 22/04/2020 9:58 am

wpdoctor-revisa-la-salud-de-tu-wordpress

jacint
 jacint
Usuario activo

@pepesoler

Hola Pepe, 

Dentro de su /wp-content/plugins/redi-restaurant-booking/redi-restaurant-booking.php hay una funcion donde se manda sus datos por api a su servidor, luego yo introduzco este codigo para que me guarde tambien los datos en mi base de datos:

global $wpdb;

$reservationlocal = array(
'reservation_number' => (int)$reservation['ID'] ,
'nom' => self::GetPost('UserName'),
'telefon' => self::GetPost('UserPhone'),
'email' => self::GetPost('UserEmail'),
'data' => date('Y-m-d', $startTimeInt),
'hora' => date('H:i', $startTimeInt),
'persones' => $persons,
'poblacio' => str_replace('_', '-', self::GetPost('lang')),
'observacions' => $comment,
'creat' => $currentTimeISO,
'prepagament' => $paymentMode ? 'true' : 'false');

//for next per camps variables (max 3 camps)
$parameters = array();
$custom_fields = array();
$custom_fields = $this->redi->getCustomField( self::lang(), $placeID );
$numerocamp = 0;

foreach ($custom_fields as $custom_field)
{
if ( isset( $_POST[ 'field_' . $custom_field->Id ] ) )
{
++$numerocamp;
$parameters= array(
'camp'. $numerocamp => $custom_field->Name,
'tipus'. $numerocamp => $custom_field->Type,
'valor'. $numerocamp =>
$custom_field->Type === 'text' ?
self::GetPost( 'field_' . $custom_field->Id ) : (self::GetPost( 'field_' . $custom_field->Id ) === 'on' ? 'true' : 'false'));
if (!empty($parameters))
{
$reservationlocal = array_merge ($reservationlocal,$parameters);
}
}
}

$taula = $wpdb->prefix.'CAIXAREGAL';
$wpdb->insert( $taula, $reservationlocal);

 

 

He provado de copiar toda la funcion donde yo pego mi codigo en el plugin de snipped code, pero no me hace caso. El tema child que tengo no se que le pasa que al activarlo, wordpress me da un error general y entra en modo de fallos.

El tema de los hooks me gusta mas, pero entiendo que el propietario del pluguin deberia introducir un hook dentro del codigo?

 

ResponderCitar
Respondido : 25/04/2020 7:25 pm
Bulmaro
 Bulmaro
Soporte CMS Webempresa Moderator

@jacint-codinagmail-com

Hola Jacint, 

Lo que podrías intentar hacer es hacer un duplicado del complemento y cambiar el nombre de la carpeta y la información en el encabezado del plugin (para que WP no intente actualizarlo). Mantenga ambos instalados pero con el original desactivado (no puede tener ambos activos al mismo tiempo). Luego, cuando se actualiza el plugin original, puedes usar una herramienta de comparación de archivos (por ejemplo, el comando diff de Linux) para ver qué ha cambiado y qué necesita actualizar para alinear su copia con el original.

O bien, puedes comunicarse con el desarrollador del complemento y preguntarles si hay una manera de cambiar lo que necesita sin editar el código.

Saludos.

ResponderCitar
Respondido : 26/04/2020 4:47 am

jacint
 jacint
Usuario activo

@bulmaro-webempresa

Gracial  bulmaro, a ver si el desarrollador me pudiera dar una solucion con hook o algo así, porque no puedo estar pendiente de si se actualiza y me machaca el codigo. Me gustaria dejarlo automatizado. gracias

ResponderCitar
Respondido : 26/04/2020 3:52 pm
Bulmaro
 Bulmaro
Soporte CMS Webempresa Moderator

@jacint-codinagmail-com

Hola Jacint, 

Excelente, aunque podrías crear un duplicado del plugin creando una copia de la carpeta del mismo y modificando los datos del encabezado del plugin, esto en lo que el desarrollador te ofrece alguna solución.

Saludos 🙂

ResponderCitar
Respondido : 26/04/2020 8:20 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

jacint
 jacint
Usuario activo

@bulmaro-webempresa

Cual seria este encavezado a modificar? no tengo experiencia en plugins

gracias

ResponderCitar
Respondido : 26/04/2020 10:06 pm
Bulmaro
 Bulmaro
Soporte CMS Webempresa Moderator

@jacint-codinagmail-com

Hola Jacint, 

Debes acceder a la carpeta del plugin y buscar en algun archivo de extension .php algo como esto:

/**

 * Plugin Name: Everest Forms
 * Plugin URI: https://wpeverest.com/wordpress-plugins/everest-forms/
 * Description: Drag and Drop contact form builder to easily create simple to complex forms for any purpose. Lightweight, Beautiful design, responsive and more.
 * Version: 1.6.4
 * Author: WPEverest
 * Author URI: https://wpeverest.com
 * Text Domain: everest-forms
 * Domain Path: /languages/
 *
 * @package EverestForms
 */

Luego modificas:

/**
 * Plugin Name: Mi plugin personalizado
 * Plugin URI: https://www.miweb.com
 * Description: Drag and Drop contact form builder to easily create simple to complex forms for any purpose. Lightweight, Beautiful design, responsive and more.
 * Version: 1.6.4
 * Author: Bulmaro
 * Author URI: https://wpeverest.com
 * Text Domain: everest-forms
 * Domain Path: /languages/
 *
 * @package EverestForms
 */

Saludos 🙂

ResponderCitar
Respondido : 26/04/2020 11:43 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación