Adicionando botão de WhatsApp automático para produtos externos no Woocommerce

Ivon Filho

Procurando desenvolvedor freelancer para seu projeto?

Segue código para a functions.php

// Modifica o link de produtos externos para apontar para o WhatsApp
add_filter('woocommerce_product_add_to_cart_url', 'custom_external_product_add_to_cart_url', 10, 2);

function custom_external_product_add_to_cart_url($url, $product) {
    // Verifica se é um produto externo
    if ($product->is_type('external')) {
        $product_title = $product->get_title();
        $whatsapp_number = '5561991664570'; // Número de telefone do WhatsApp
        $whatsapp_link = sprintf(
            'https://api.whatsapp.com/send/?phone=%s&text=%s',
            $whatsapp_number,
            urlencode($product_title)
        );

        return $whatsapp_link;
    }

    return $url;
}

// Altera o texto do botão "Adicionar ao Carrinho" para "Solicitar via WhatsApp" para produtos externos
add_filter('woocommerce_product_single_add_to_cart_text', 'custom_external_product_button_text');
add_filter('woocommerce_product_add_to_cart_text', 'custom_external_product_button_text');

function custom_external_product_button_text($text) {
    global $product;

    if ($product && $product->is_type('external')) {
        return 'Comprar WhatsApp';
    }

    return $text;
}

// Abre links de produtos externos em uma nova aba nas páginas de categoria
add_filter('woocommerce_loop_add_to_cart_link', 'custom_external_product_add_to_cart_target', 10, 2);

function custom_external_product_add_to_cart_target($link, $product) {
    if ($product->is_type('external')) {
        $link = str_replace('<a ', '<a target="_blank" ', $link);
    }
    return $link;
}

// Abre links de produtos externos em uma nova aba na página do produto único
add_filter('woocommerce_product_single_add_to_cart_url', 'custom_external_product_add_to_cart_url_single', 10, 2);

function custom_external_product_add_to_cart_url_single($url, $product) {
    if ($product->is_type('external')) {
        $url = str_replace('<a ', '<a target="_blank" ', $url);
    }
    return $url;
}
Rolar para cima