Crear campo de subida de archivos en página de producto de WooCommerce y enviarlo al pedido

Crear campo de subida de archivos en página de producto de WooCommerce y enviarlo al pedido

Crear campo de subida de archivos en página de producto de WooCommerce

1. Añadir el campo de subida de archivos

  1. Accede al archivo functions.php de tu tema activo.
  2. Agrega el siguiente código:

add_action('woocommerce_before_add_to_cart_button', 'custom_file_upload_field');
function custom_file_upload_field() {
    echo '<div class="custom-file-upload">';
    echo '<label for="custom_file">Sube tu archivo:</label>';
    echo '<input type="file" id="custom_file" name="custom_file" />';
    echo '</div>';
}

2. Validar y guardar el archivo en el pedido

  1. Agrega el siguiente código en el mismo archivo functions.php:

add_action('woocommerce_add_cart_item_data', 'save_custom_file_upload', 10, 2);
function save_custom_file_upload($cart_item_data, $product_id) {
    if (!empty($_FILES['custom_file']['name'])) {
        $uploaded_file = $_FILES['custom_file'];
        $upload_overrides = array('test_form' => false);
        $movefile = wp_handle_upload($uploaded_file, $upload_overrides);
        
        if ($movefile && !isset($movefile['error'])) {
            $cart_item_data['custom_file'] = $movefile['url'];
        } else {
            // Manejar error de subida
        }
    }
    return $cart_item_data;
}

3. Mostrar el archivo en el pedido

  1. Agrega el siguiente código en el archivo functions.php:

add_filter('woocommerce_order_item_display_meta_key', 'custom_file_upload_meta_key', 10, 3);
function custom_file_upload_meta_key($display_key, $meta, $item) {
    if ($meta->key === 'custom_file') {
        $display_key = 'Archivo Subido';
    }
    return $display_key;
}

add_filter('woocommerce_order_item_meta_end', 'custom_file_upload_meta_value', 10, 4);
function custom_file_upload_meta_value($item_id, $item, $order, $plain_text) {
    $custom_file = $item->get_meta('custom_file');
    if ($custom_file) {
        echo '<p><a href="' . esc_url($custom_file) . '" target="_blank">Descargar Archivo</a></p>';
    }
}

4. Probar la funcionalidad

  1. Ve a la página de un producto en tu tienda.
  2. Sube un archivo y añade el producto al carrito.
  3. Completa la compra y verifica que el archivo se muestra en los detalles del pedido.

 

Categoría: Plugin WooCommerce

Scroll al inicio