Preview:
add_shortcode('whatsapp_message_url', 'gerar_link_whatsapp_produto2');

function gerar_link_whatsapp_produto2() {
    global $product;
    if (!$product) {
        return 'Produto não disponível.';
    }

    $whatsapp_number = get_option('site-config')['whatsapp_number'];
    $sku_exibe = get_option('site-config')['sku_exibe'];

    if (empty($whatsapp_number)) {
        return 'Número do WhatsApp não configurado.';
    }

    $post_id = $product->get_id();
    $post_title = get_the_title($post_id);
    $post_url = get_permalink($post_id);

    $message = "Olá, gostaria de saber mais sobre este produto:\n\n";
    $message .= "*Produto:* {$post_title}\n";
    $message = htmlentities($message);

    $message_id = uniqid('msg_');

    ob_start();
    ?>
    <script>
    (function($) {
        $(document).ready(function() {
            var messageSelector = '#<?php echo $message_id; ?>';
            var variationForm = $('.variations_form');
            
            variationForm.on('found_variation', function(event, variation) {
                var variationDetails = '';

                <?php if ($sku_exibe === 'true'): ?>
                var productSku = variation.sku ? "*SKU:* " + variation.sku + '\n' : '';
                variationDetails += productSku;
                <?php endif; ?>
                
                var productVariationPrice = variation.display_price ? "*Preço:* R$ " + variation.display_price.toFixed(2).replace('.', ',') + '\n' : '';
                variationDetails += productVariationPrice;

                $.each(variation.attributes, function(key, value) {
                    if (value) {
                        var attribute_name = key.replace('attribute_', '');
                        var normalized_name = attribute_name.replace(/pa_/, '').replace(/_/g, ' ');
                        var cleanValue = value.replace(/-/g, ' ').replace(/^pa_/, '');
                        variationDetails += "*" + normalized_name.capitalize() + ":* " + cleanValue + '\n';
                    }
                });

                variationDetails += "*Link do Produto:* " + "<?php echo $post_url; ?>\n\n";
                var fullMessage = $(messageSelector).data('base-message') + variationDetails + "Obrigado.";
                $(messageSelector).attr('href', function() {
                    return $(this).data('base-url') + '&text=' + encodeURIComponent(fullMessage);
                });
            }).trigger('update_variation_values');
        });

        // Função para capitalizar a primeira letra de cada palavra
        String.prototype.capitalize = function() {
            return this.replace(/(?:^|\s)\S/g, function(a) { return a.toUpperCase(); });
        };
    })(jQuery);
    </script>
    <?php
    $script = ob_get_clean();

    $whatsapp_base_url = "https://api.whatsapp.com/send?phone={$whatsapp_number}";
    $encoded_message = urlencode($message);
    $link = "{$whatsapp_base_url}&text={$encoded_message}";

    return "<a href='{$link}' target='_blank' class='whatsapp-link' id='{$message_id}' data-base-message='{$message}' data-base-url='{$whatsapp_base_url}'>
        <i class='fab fa-whatsapp icon'></i>Pedir via WhatsApp</a>{$script}";
}
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter