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}"; }
Preview:
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