preciso criar um site em wordpress com as seguintes funcionalidades: 1. os produtos estarão dispostos no woocommerce, mas não haverá vendas, somente orçamento a ser realizados pelo vendedores; 2. o vendedor criará o cliente com os seguintes dados: No

Home » Snippets » preciso criar um site em wordpress com as seguintes funcionalidades: 1. os produtos estarão dispostos no woocommerce, mas não haverá vendas, somente orçamento a ser realizados pelo vendedores; 2. o vendedor criará o cliente com os seguintes dados: No
0

Created with:

Visibility: 

public

Creator: Arthur Brasileiro

Customize with WPTurbo AI
X

Add Snippet To Project

New Project
Add To Existing Project
					<?php
/**
 * Plugin Name: Orçamento Plugin
 * Description: Plugin para criação de orçamentos no WooCommerce.
 * Version: 1.0
 * Author: Seu Nome
 * Author URI: https://www.seusite.com
 * Text Domain: wpturbo
 */

// Adiciona um novo metabox na tela de edição do WooCommerce para inserir as informações do orçamento
function wpturbo_add_custom_fields() {
    add_meta_box(
        'wpturbo_custom_fields',
        'Informações do Orçamento',
        'wpturbo_render_custom_fields',
        'product',
        'normal',
        'default'
    );
}
add_action('add_meta_boxes', 'wpturbo_add_custom_fields');

// Renderiza os campos personalizados na tela de edição do WooCommerce
function wpturbo_render_custom_fields() {
    global $post;
    $custom_fields = get_post_meta($post->ID, 'wpturbo_custom_fields', true);
    $client_name = isset($custom_fields['client_name']) ? $custom_fields['client_name'] : '';
    $client_phone = isset($custom_fields['client_phone']) ? $custom_fields['client_phone'] : '';
    $client_email = isset($custom_fields['client_email']) ? $custom_fields['client_email'] : '';
    $client_address = isset($custom_fields['client_address']) ? $custom_fields['client_address'] : '';
    $client_observation = isset($custom_fields['client_observation']) ? $custom_fields['client_observation'] : '';
    $client_discount = isset($custom_fields['client_discount']) ? $custom_fields['client_discount'] : '';

    // Renderiza os campos personalizados na tela de edição do WooCommerce
    ?>
    <div class="wpturbo-custom-fields">
        <div class="wpturbo-field">
            <label for="client_name">Nome do Cliente:</label>
            <input type="text" id="client_name" name="wpturbo_custom_fields[client_name]" value="<?php echo esc_attr($client_name); ?>">
        </div>
        <div class="wpturbo-field">
            <label for="client_phone">Telefone do Cliente:</label>
            <input type="text" id="client_phone" name="wpturbo_custom_fields[client_phone]" value="<?php echo esc_attr($client_phone); ?>">
        </div>
        <div class="wpturbo-field">
            <label for="client_email">Email do Cliente:</label>
            <input type="email" id="client_email" name="wpturbo_custom_fields[client_email]" value="<?php echo esc_attr($client_email); ?>">
        </div>
        <div class="wpturbo-field">
            <label for="client_address">Endereço de Entrega:</label>
            <textarea id="client_address" name="wpturbo_custom_fields[client_address]"><?php echo esc_textarea($client_address); ?></textarea>
        </div>
        <div class="wpturbo-field">
            <label for="client_observation">Observações:</label>
            <textarea id="client_observation" name="wpturbo_custom_fields[client_observation]"><?php echo esc_textarea($client_observation); ?></textarea>
        </div>
        <div class="wpturbo-field">
            <label for="client_discount">Desconto:</label>
            <input type="text" id="client_discount" name="wpturbo_custom_fields[client_discount]" value="<?php echo esc_attr($client_discount); ?>">
        </div>
    </div>
    <?php
}

// Salva os valores dos campos personalizados
function wpturbo_save_custom_fields($post_id) {
    if (isset($_POST['wpturbo_custom_fields'])) {
        $custom_fields = $_POST['wpturbo_custom_fields'];
        update_post_meta($post_id, 'wpturbo_custom_fields', $custom_fields);
    }
}
add_action('save_post', 'wpturbo_save_custom_fields');

// Gera o PDF com os dados do orçamento
function wpturbo_generate_pdf($order_id) {
    $order = wc_get_order($order_id);
    
    $client_name = get_post_meta($order_id, 'wpturbo_custom_fields', true)['client_name'];
    $client_phone = get_post_meta($order_id, 'wpturbo_custom_fields', true)['client_phone'];
    $client_email = get_post_meta($order_id, 'wpturbo_custom_fields', true)['client_email'];
    $client_address = get_post_meta($order_id, 'wpturbo_custom_fields', true)['client_address'];
    $client_observation = get_post_meta($order_id, 'wpturbo_custom_fields', true)['client_observation'];
    $client_discount = get_post_meta($order_id, 'wpturbo_custom_fields', true)['client_discount'];
    
    // Código para gerar o PDF com os dados do orçamento
    
    // Envia o email para o cliente
    $to = $client_email;
    $subject = 'Orçamento Gerado';
    $message = 'Olá, você recebeu um novo orçamento. Verifique em sua conta.';
    wp_mail($to, $subject, $message);
}

// Cria o pedido no WooCommerce com status "pendente" após a criação do orçamento
function wpturbo_create_order($order_id) {
    $order = wc_get_order($order_id);
    $order->update_status('pending');
}

// Adiciona os ganchos para chamar as funções nos botões apropriados
function wpturbo_add_hooks() {
    add_action('woocommerce_checkout_order_processed', 'wpturbo_generate_pdf');
    add_action('woocommerce_checkout_order_processed', 'wpturbo_create_order');
}
add_action('wp_loaded', 'wpturbo_add_hooks');
				

Explicação:

Plugins sugeridos para otimizar a produção dessa aplicação:

Lembre-se de instalar e ativar esses plugins antes de usar o código acima. Certifique-se também de personalizar o código de acordo com suas necessidades.

Register an account to save your snippets or go Pro to get more features.