¿Alguién ha hecho plugins para WP desde IA?

Morgabe Seguir

Épsilon
Programador
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
9 Abr 2012
Mensajes
993
Edad
32
Cómo de posible es hacer un plugin a medida para wordpress?

Hace tiempo empecé a ver qué el chat gpt puede añadir codigo según el digas... esto cómo de eficaz es? quiero decir.. es posible hacer un plugin "complejo" o funcional mediante esta ia? o es otra que no es chat gpt?
 

webcoder

Beta
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
9 Ago 2023
Mensajes
92
Soy desarrollador y tuve hasta ahora 3 casos de clientes mios que desarrollaron gran parte del plugin por IA, bastante basicos pero si alguno era extenso y me contrataron solo para hacer la parte mas "compleja", por ejemplo unos artículos que necesitaban algunas taxonomías extras, eso lo hizo la IA y yo el reporte para extraer los datos y hacer un calculo para despues ponerlo en un reporte.
 

Morgabe

Épsilon
Programador
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
9 Abr 2012
Mensajes
993
Edad
32
Soy desarrollador y tuve hasta ahora 3 casos de clientes mios que desarrollaron gran parte del plugin por IA, bastante basicos pero si alguno era extenso y me contrataron solo para hacer la parte mas "compleja", por ejemplo unos artículos que necesitaban algunas taxonomías extras, eso lo hizo la IA y yo el reporte para extraer los datos y hacer un calculo para despues ponerlo en un reporte.
Y se puede hacer con chat gpt la versión gratuita? supongo que sí pero lo hará por fragmentos no?

Genial tu noticia, eso me indica que es posible que añada nuevas funcionalidades en el wordpress ^^
 

sabogal

Delta
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Desde
23 Ago 2011
Mensajes
607
Yo he realizado varios plugins con ChatGpt, pero se requiere darle unas instrucciones muy precisas sobre lo que se requiere, y el paso a paso.

No es cuestión de pedirle que me haga u plugin para x o y propósito, sino que se debe dar instrucciones paso a paso de lo que se requiere lograr.

Para asuntos complejos no es la mejor herramienta; se suele quedar atorado sin poder avanzar y en tareas complejas he tenido que contratar a un programador.

También dependerá de las conocimientos que uno tenga, puesto que cuando se queda atorado, si uno hace sugerencias de cómo proceder se desbloquea pues entiende mejor qué es lo que se quiere, por lo que es relativo.

A modo de ejemplo, comparto un plugin funcional que hice con ChatGpt:

Insertar CODE, HTML o PHP:
<?php
/*
Plugin Name: Suscripción a comentarios
Description: Permite al usuario suscribirse a los comentarios
Version: 1.0
Author: Yo
*/

// Activation hook
register_activation_hook(__FILE__, 'comment_subscription_plugin_activate');

// Deactivation hook
register_deactivation_hook(__FILE__, 'comment_subscription_plugin_deactivate');

// Initialize the plugin
add_action('plugins_loaded', 'comment_subscription_plugin_init');


function comment_subscription_plugin_activate() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'subscriptions';

$wpdb->query("
  CREATE TABLE IF NOT EXISTS $table_name (
    id mediumint(9) NOT NULL AUTO_INCREMENT,
    comment_id mediumint(9) NOT NULL,
    email varchar(255) NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY comment_id (comment_id, email)
  ) $wpdb->charset $wpdb->collate;
");
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);
}


function comment_subscription_plugin_deactivate() {
    // Verifica si el plugin se desactiva manualmente o debido a la desinstalación
    if ( !defined( 'WP_UNINSTALL_PLUGIN' ) ) {
        return;
    }

    global $wpdb;
    $table_name = $wpdb->prefix . 'comment_subscriptions';
    $wpdb->query("DROP TABLE IF EXISTS $table_name");
}



function comment_subscription_plugin_init() {
    // Add checkbox to comment form
    add_filter('comment_form_default_fields', 'comment_subscription_plugin_add_checkbox');
    add_action('comment_post', 'comment_subscription_plugin_save_subscription');

    // Process subscription
    add_action('wp_loaded', 'comment_subscription_plugin_process_subscription');
}


function comment_subscription_plugin_save_subscription($comment_id) {
    if (isset($_POST['subscribe_to_comments']) && $_POST['subscribe_to_comments'] == 1) {
        $email = sanitize_email($_POST['email']);
        $post_id = get_comment($comment_id)->comment_post_ID;

        if (!empty($email) && is_email($email)) {
            global $wpdb;
            $table_name = $wpdb->prefix . 'comment_subscriptions';

            // Comprobar si el usuario ya está suscrito con el mismo correo a este post
            $existing_subscription = $wpdb->get_row(
                $wpdb->prepare("SELECT * FROM $table_name WHERE email = %s AND post_id = %d", $email, $post_id)
            );

            if (!$existing_subscription) {
                // Insertar una nueva suscripción si no existe una suscripción con el mismo correo para este post
                    $wpdb->insert(
                $table_name,
                array(
                    'post_id' => $post_id,
                    'email' => $email,
                    'registration_date' => current_time('mysql', 1), // Agrega la fecha de registro
                ),
                array('%d', '%s', '%s')
            );

            }
        }
    }
}



function comment_subscription_plugin_process_subscription() {
    if (isset($_GET['unsubscribe_comment']) && isset($_GET['email'])) {
        $post_id = get_comment($_GET['unsubscribe_comment'])->comment_post_ID;
        $email = sanitize_email($_GET['email']);

        if (!empty($email) && is_email($email)) {
            global $wpdb;
            $table_name = $wpdb->prefix . 'comment_subscriptions';
            $wpdb->delete(
                $table_name,
                array(
                    'post_id' => $post_id,
                    'email' => $email,
                ),
                array('%d', '%s')
            );
            echo 'Has eliminado con éxito su suscripción a los comentarios de este post.';
            exit;
        }
    }
}


// ...

function comment_subscription_plugin_notify_subscribers($comment_id, $comment_approved) {
    if ($comment_approved == 1) {
        $post_id = get_comment($comment_id)->comment_post_ID;
        $comment_permalink = get_comment_link($comment_id);
        $post_title = get_the_title($post_id);

        global $wpdb;
        $table_name = $wpdb->prefix . 'comment_subscriptions';
        $subscribers = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name WHERE post_id = %d", $post_id));

        if (!empty($subscribers)) {
        $subject = "Nuevo comentario en $post_title";
        $message = "Se ha publicado un nuevo comentario en el artículo: $post_title:\n\n";

            $message .= "Ver el comentario en el siguiente enlace: {$comment_permalink}\n\n";

            foreach ($subscribers as $subscriber) {
                $unsubscribe_link = add_query_arg(
                    array(
                        'unsubscribe_comment' => $comment_id,
                        'email' => urlencode($subscriber->email),
                    ),
                    home_url()
                );

                $unsubscribe_message = "\n\nPara cancelar la suscripción a este artículo, haga clic en el siguiente enlace: {$unsubscribe_link}";
                wp_mail($subscriber->email, $subject, $message . $unsubscribe_message);
            }
        }
    }
}

add_action('comment_post', 'comment_subscription_plugin_notify_subscribers', 10, 2);


//Agrega casilla de suscripción automáticamente al formulario de comentarios
function comment_subscription_plugin_add_checkbox($fields) {
    $fields['subscribe_to_comments'] = '<p class="comment-form-subscribe"><label for="subscribe_to_comments"><input type="checkbox" id="subscribe_to_comments" name="subscribe_to_comments" value="1" />Suscribirme para recibir respuestas a mi correo</label></p>';
    return $fields;
}


//Agrega casilla de suscripción manualmente al formulario de comentarios
function comment_subscription_plugin_add_checkbox_to_comments($args) {
    ?>
<p class="comment-form-subscribe" style="display: block !important;">
    <label for="subscribe_to_comments">
        <div id="subscribe_to_comments_container">
            <input type="checkbox" id="subscribe_to_comments" name="subscribe_to_comments" value="1" class="subscribe_checkbox" <?php checked(isset($_POST['subscribe_to_comments']) && $_POST['subscribe_to_comments'], 1); ?> />
            Suscribirseo.
        </div>
    </label>
</p>


    <?php
}


//Administración de suscriptores
add_action('admin_menu', 'comment_subscription_plugin_menu');

function comment_subscription_plugin_menu() {
    add_menu_page(
        'Subscription Users',
        'Suscripciones',
        'manage_options',
        'comment-subscription-users',
        'comment_subscription_plugin_users_page'
    );
}

function comment_subscription_plugin_users_page() {
    if (!current_user_can('manage_options')) {
        wp_die('No tienes permisos suficientes para acceder a esta página.');
    }

    global $wpdb;
    $table_name = $wpdb->prefix . 'comment_subscriptions';

    // Procesar la eliminación individual
    if (isset($_GET['action']) && $_GET['action'] === 'delete' && isset($_GET['email'])) {
        $email = sanitize_email($_GET['email']);

        if (!empty($email) && is_email($email)) {
            $wpdb->delete($table_name, array('email' => $email));
            echo '<div class="updated"><p>Todas las suscripciones de ' . esc_html($email) . ' han sido eliminadas con éxito.</p></div>';
        }
    }

    // Obtener la cadena de búsqueda
    $search_term = isset($_GET['s']) ? sanitize_text_field($_GET['s']) : '';

    // Configuración de paginación
    $per_page = 50;
    $current_page = isset($_GET['paged']) ? max(1, intval($_GET['paged'])) : 1;
    $offset = ($current_page - 1) * $per_page;

    // Obtener la lista de usuarios según la cadena de búsqueda y la paginación
    
// Obtener la lista de usuarios según la cadena de búsqueda y la paginación

if (!empty($search_term)) {
    $users = $wpdb->get_results(
        $wpdb->prepare("SELECT DISTINCT email FROM $table_name WHERE email LIKE %s ORDER BY registration_date DESC LIMIT %d, %d", '%' . like_escape($search_term) . '%', $offset, $per_page)
    );
    $total_users = $wpdb->get_var($wpdb->prepare("SELECT COUNT(DISTINCT email) FROM $table_name WHERE email LIKE %s", '%' . like_escape($search_term) . '%'));
} else {
    $users = $wpdb->get_results("SELECT DISTINCT email FROM $table_name ORDER BY registration_date DESC LIMIT $offset, $per_page");
    $total_users = $wpdb->get_var("SELECT COUNT(DISTINCT email) FROM $table_name");
}


    echo '<div class="wrap">';
    
// Obtener la cantidad de usuarios suscritos
$total_subscribers = $wpdb->get_var("SELECT COUNT(DISTINCT email) FROM $table_name");

// Mostrar el título con la cantidad de usuarios suscritos
echo '<h2>Usuarios suscritos <small>(' . esc_html($total_subscribers) . ')</small></h2>';

    // Formulario de búsqueda
    echo '<form method="get">';
    echo '<input type="hidden" name="page" value="comment-subscription-users" />';
    echo '<input type="text" name="s" placeholder="Buscar por correo electrónico" value="' . esc_attr($search_term) . '" />';
    echo '<input type="submit" class="button" value="Buscar" />';
    echo '</form>';

    echo '<style>';
    echo '.responsive-table { width: 100%; border-collapse: collapse; }';
    echo '.responsive-table th, .responsive-table td { border: 1px solid #ddd; padding: 8px; text-align: left; }';
    echo '</style>';

    // Mostrar la tabla de usuarios paginada
    if (!empty($users)) {
        echo '<table class="responsive-table">';
        echo '<tr><th>Email</th><th>Posts Suscritos</th><th>Acciones</th></tr>';

        foreach ($users as $user) {
            echo '<tr>';
            echo '<td>' . esc_html($user->email) . '</td>';
            echo '<td>';

            // Mostrar los posts suscritos en una lista desordenada (ul)
            echo '<ul>';
            $post_ids = $wpdb->get_col($wpdb->prepare("SELECT post_id FROM $table_name WHERE email = %s", $user->email));
            foreach ($post_ids as $post_id) {
                $post_title = get_the_title($post_id);
                echo '<li>' . esc_html($post_title) . '</li>';
            }
            echo '</ul>';

            echo '</td>';
            echo '<td><a href="?page=comment-subscription-users&action=delete&email=' . urlencode($user->email) . '">Eliminar</a></td>';
            echo '</tr>';
        }

        echo '</table>';

        // Paginación
        echo '<div class="tablenav">';
        echo '<div class="tablenav-pages">';
        echo paginate_links(array(
            'base' => add_query_arg('paged', '%#%'),
            'format' => '',
            'prev_text' => __('&laquo; Anterior'),
            'next_text' => __('Siguiente &raquo;'),
            'total' => ceil($total_users / $per_page),
            'current' => $current_page,
        ));
        echo '</div>';
        echo '</div>';
    } else {
        echo '<p>No se encontraron usuarios.</p>';
    }

    echo '</div>';
}
 

ramonjosegn

Sigma
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
14 Feb 2010
Mensajes
69.526
¿Y qué hace el plugin @sabogal ?

¿Crees que pasaría la revisión para subirlo al repertorio de wordpress?

He visto que con los themes los revisan con bastante profundidad, pero con los plugins hasta alguno con virus se les ha escachado por ahí... Por eso me pregunto si ellos podrían detectar si está hecho con ia.
 

sabogal

Delta
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Desde
23 Ago 2011
Mensajes
607
¿Y qué hace el plugin @sabogal ?

¿Crees que pasaría la revisión para subirlo al repertorio de wordpress?

He visto que con los themes los revisan con bastante profundidad, pero con los plugins hasta alguno con virus se les ha escachado por ahí... Por eso me pregunto si ellos podrían detectar si está hecho con ia.
El plugin es para que los usuarios se suscriban al dejar comentarios en los post, de modo que reciban una notificación al correo electrónico cuando alguien más comente el post.

No se si pasará la revisión, pero es un código sencillo y seguro, y es corto por lo que se puede revisar visualmente con facilidad.
 

Daviiz

Beta
SEO
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
20 Mar 2016
Mensajes
30
Para mí ChatGPT está algo verde aún para cosas complejas.
Por poder se puede pero como no controles un poquito te va a hacer una chapuza con un montón de errores.
Yo creo que la clave es ser muy preciso con los prompts y hacer prueba y error.
Eso sí, no lo usaría para plugins muy complejos.
 

Joe_Developer

No recomendado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Usuario nuevo
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
20 Mar 2024
Mensajes
38
Yo he creado plugins bastante complicados totalmente utilizando chatgpt de manera de prueba y la verdad que la mejor opcion es ir empezando con prompts cortos y precisos y luego ir ajustando cada funcionalidad y agregando una por una, pero si es posible y si lo hace muy bien.
 

EnmaJost

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
30 Ene 2020
Mensajes
198
La cuestión en estos casos es que se debe tener conocimiento básico y si te puedes apoyar bastante. Pero siempre se debe tener algo de experiencia en la forma de pedir las cosas a chat gpt e ir haciéndolo por parte. Además probablemente después vas a tener que durar haciendo correcciones y corrigiendo errores. Pero, con mucha paciencia si se puede.
 

jg4079751

Épsilon
Eta
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
20 Dic 2020
Mensajes
1.372
Yo no he creado plugins con IA, pero sí códigos php que me han sido muy útiles.
 

Benderslab

Kappa
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
16 Abr 2018
Mensajes
2.546
Si se puede siempre y cuando seas programador. Imagina que Chatgpt es una brocha y pintura, necesitas saber pintar para poder usarlos como se debe aunque sin ser pintor también podrias hacerlo pero llegarás a un punto en el que no sabrás como seguir y seguramente te vas a frustrar.

Para cosas simples como hizo @sabogal si te sirve pero ojo, si te fijas la ia metió la lógica, plantillas y todo en un solo archivo,. Un [programadror habria estructurado mejor el plugin.
 

Franyer Rivas

1
Pi
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Desde
11 Ago 2010
Mensajes
5.429
Todo va a depender de cuanto sepa de programación el usuario, ya que solo poner un prompt y esperar que quede perfecto como lo esperas es bastante difícil, pero cuando ya tienes ideas de la estructura de un código y la lógica de programación, te ahorra mucho tiempo o te ayuda a depurar errores, yo por ejemplo no soy experto en ningún lenguaje pero si se lo básico de estructura de algunos como por ejemplo Python, y solo usando la versión 3.5 de chat GPT tengo un bot de futuros que funciona con el API de binance con una estrategia simple pero funcional, el código hace un total de 7 funciones que conforman toda la lógica, si le pides en un promp que te de un código que haga todo eso, difícilmente te de algo 100% funcional, pero si le vas pidiendo funciones especificas y depurando los errores que se puedan generar, con paciencia y lógica se hacen cosas super complejas
 

oso cosmico

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
11 Abr 2018
Mensajes
412
Si se puede yo eh echo ya algunos, use gpt-4 es mucho mejor para codigo, ayúdate también de otras ia como github copilot para refinar al final los detalles

los que hacia con la versión gratis al querer avanzar mas en grado de complejidad muchas veces se quedaba atorado

eso si, hazlo paso por paso, y ve probando siempre en cada actualización que le pidas para poder corregir errores y continuar, hay una extensión de chrome que usa la api de open ia para resumir videos o paginas, úsala también cuando te atores, buscas en internet un tutorial o documentación de lo que estas haciendo, con ayuda de esa extensión vas a poder darle mejores prompts.
 

sabogal

Delta
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Desde
23 Ago 2011
Mensajes
607
Con ChatGpt he realizado un plugin que hace algo un poco más complejo como convertir los post a formato json y md, que es necesario para armar bases de datos vectoriales para trabajar con IA.
 

Vicente

VIP
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Suscripción a IA
Desde
25 Nov 2009
Mensajes
910
Yo lo utilizo para snippets y cosas sencillas, si quieres algo complejo debes saber de programación y explicarle toda la estructura del plugin y mil cosas. No es tan sencillo como pedirle que te escriba un artículo sobre algo.

A ver si avanza la cosa.
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba