Adicionar novo trecho de código ‹ Pedidos Woo 1.0 — WordPress
Fri Mar 08 2024 17:08:06 GMT+0000 (Coordinated Universal Time)
Saved by
@carlaherrera
#undefined
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}";
}
content_copyCOPY
Este código funciona para produtos variáveis, precisa apenas do SKU, produtos simples não funciona.
https://pedidoswoo.optatemplates.com.br/wp-admin/admin.php?page
Comments