• jonatanaraioses

    (@jonatanaraioses)


    I’m trying to implement it on a video site that I’m building on WordPress.

    I’m using two plugins: videopack and AccessPress Pro

    What I would like to do is the following: When the user sends the video to the frontend, through the AccessPress form, three thumbnail options would be generated for them to choose which one will be used. At this point, it would be defined as the featured image of the post.

    You can do this in the WordPress administrative area, in the videopack options. But I would like to bring this videopack functionality to the front-end, where any user can upload their videos and select the thumbnail.

    Could someone help me?

    I’ve already tried, through GPT Chat, but the option to select thumbnails doesn’t appear. Below are the options he suggested to me:

    1. Edit the Form Template First, let’s modify the AccessPress form template to include the video upload field and the area where thumbnails will be displayed.

    Locate the Template File:

    Access your theme folder on the server via FTP or the WordPress admin panel. Navigate to wp-content/plugins/accesspress-anonymous-post-pro/templates. Find the file that contains the form. Generally, the file is form.php. Edit the form.php File:

    Open the form.php file for editing. Add the Video Upload Field and Thumbnail Area:

    Add the video upload field and thumbnail display area. Here is an example of how this can be done:

    <?php
    /**
     * Template para o formulário de post an?nimo do AccessPress.
     */
    
    // Incluir o nonce de seguran?a
    wp_nonce_field('post_nonce', 'post_nonce');
    
    // Incluir o campo de upload de vídeo
    ?>
    <p>
        <label for="post_video">Upload de Vídeo</label>
        <input type="file" id="post_video" name="post_video" accept="video/*">
    </p>
    
    <!-- área para exibir miniaturas -->
    <div id="thumbnail-preview"></div>
    
    <?php
    // Restante do formulário...
    ?>
    

    Now, let’s add the JavaScript code that will handle the video upload process, thumbnail generation, and user interaction.

    Create a JavaScript File:

    Create a new file called custom-thumbnail-selector.js inside your theme’s js directory. If the js directory does not exist, create one. Add JavaScript Code:

    Add the following code to the custom-thumbnail-selector.js file:

    jQuery(document).ready(function($) {
        $('#post_video').on('change', function() {
            var file_data = $('#post_video').prop('files')[0];
            var form_data = new FormData();
            form_data.append('post_video', file_data);
            form_data.append('action', 'generate_video_thumbnails');
            form_data.append('post_nonce', $('#post_nonce').val());
    
            // Limpar área de miniaturas
            $('#thumbnail-preview').html('');
    
            $.ajax({
                url: ajax_object.ajax_url,
                type: 'POST',
                data: form_data,
                processData: false,
                contentType: false,
                success: function(response) {
                    if (response.success) {
                        // Exibir miniaturas geradas
                        $.each(response.data, function(index, value) {
                            $('#thumbnail-preview').append('<label><input type="radio" name="thumbnail_choice" value="' + value + '" required><img src="' + value + '" /></label>');
                        });
                    } else {
                        alert('Erro: ' + response.data);
                    }
                },
                error: function() {
                    alert('Erro ao processar a requisi??o.');
                }
            });
        });
    });
    
    
    1. Add PHP Code to Process the Request Now, let’s add the PHP code needed to process the AJAX request and generate the video thumbnails.

    Add PHP Code to functions.php or a Custom Plugin:

    // Fun??o para gerar miniaturas de vídeo
    function generate_video_thumbnails_ajax() {
        // Verificar nonce para seguran?a
        check_ajax_referer('post_nonce', 'post_nonce');
    
        // Verificar se o vídeo foi enviado
        if (isset($_FILES['post_video'])) {
            $file = $_FILES['post_video'];
    
            // Carregar o vídeo na biblioteca de mídia
            $attachment_id = media_handle_upload('post_video', 0);
            
            if (is_wp_error($attachment_id)) {
                wp_send_json_error('Erro ao carregar o vídeo.');
            }
    
            // Verificar se a fun??o do Videopack está disponível
            if (function_exists('vp_create_video_thumbnails')) {
                $thumbnails = vp_create_video_thumbnails($attachment_id);
                wp_send_json_success($thumbnails);
            } else {
                wp_send_json_error('Fun??o do Videopack n?o encontrada.');
            }
        } else {
            wp_send_json_error('Nenhum vídeo enviado.');
        }
    }
    
    // Adicionar a??o para processar a requisi??o AJAX
    add_action('wp_ajax_generate_video_thumbnails', 'generate_video_thumbnails_ajax');
    add_action('wp_ajax_nopriv_generate_video_thumbnails', 'generate_video_thumbnails_ajax');
    
    // Adicionar script para manejar o AJAX no front-end
    function enqueue_custom_scripts() {
        wp_enqueue_script('custom-thumbnail-selector'
Viewing 1 replies (of 1 total)
  • Plugin Author Kyle Gilman

    (@kylegilman)

    I don’t think ChatGPT is giving you good advice. Sometimes it will help point you in the right direction, but none of this code references any real Videopack functions. It’s important to remember that ChatGPT never verifies that any of the text it generates is accurate. You might get better results by finding relevant code in the Videopack repository and using that as context for ChatGPT, which will not go out and find code on its own. But I don’t think that will get you very far unless you already know a lot about programming WordPress. I think making what you want would be difficult and require a lot more work than ChatGPT indicated. The thumbnail-creation form is output by the Media Library attachment_fields_to_edit hook and the JavaScript is only loaded in the admin area or when the wp_media scripts are loaded via the wp_enqueue_media() function. If you could find a way to load those Media Library forms on the frontend, you might get somewhere. But there are security checks to prevent thumbnail generation and uploading unless users are logged in. If they’re logged in, and have authorization to upload video files, you can just send them to the WordPress back-end to do that.

    Anyway, short answer is, no, I don’t know how to do this.

Viewing 1 replies (of 1 total)
  • The topic ‘How to set video thumbnail as featured image of wordpress post?’ is closed to new replies.