Função: exibir_desconto_apos_preco

Função: exibir_desconto_apos_preco

Esta função personalizada do WooCommerce permite exibir o preço de um produto com um desconto personalizado em porcentagem, com a opção de incluir ou não a porcentagem na exibição. Além disso, a função pode ser ativada ou desativada conforme necessário. A função considera a exibição correta do preço da variação selecionada ou, se nenhuma variação estiver selecionada, exibirá o preço da primeira variação.

Parâmetros:

Nenhum parâmetro é necessário ao chamar a função. Os valores são configurados internamente na função.

Configurações personalizadas:

  • $ativo: Esta variável booleana determina se a função está ativada ou desativada. Defina como true para ativar a função e false para desativá-la.
  • $exibir_porcentagem: Esta variável booleana controla se a porcentagem de desconto é exibida. Defina como true para exibir a porcentagem e false para não exibi-la.
  • $desconto_personalizado: Defina o valor do desconto desejado em porcentagem. Por exemplo, 10 para um desconto de 10%.

Exemplo de uso:

// Ativar a função
$ativo = true;

// Exibir a porcentagem
$exibir_porcentagem = true;

// Definir desconto personalizado em 15%
$desconto_personalizado = 15;

// Chamar a função
exibir_desconto_apos_preco();

Funcionamento:

  • A função verifica se o produto é simples ou variável.
  • Se o produto for simples, ela pega o preço regular e o preço promocional (se houver).
  • Se o produto for variável, a função verifica se uma variação está selecionada. Se sim, ela obtém o preço da variação selecionada. Se nenhuma variação estiver selecionada, ela obtém o preço da primeira variação disponível.
  • Aplica o desconto personalizado ao preço.
  • Exibe o preço com desconto e o texto personalizado, com ou sem a porcentagem, conforme configurado.

Integração:

Certifique-se de que o WooCommerce esteja instalado e ativado no seu site para que esta função funcione corretamente. Adicione o código ao arquivo functions.php do seu tema ou a um plugin personalizado.

Esta função oferece flexibilidade na exibição de preços com desconto em suas páginas de produtos e loja, permitindo que você configure a exibição de acordo com suas necessidades. Certifique-se de personalizar as variáveis de acordo com suas preferências.

Este código leva em consideração se o produto é simples ou variável, exibindo o preço da variação selecionada ou o da primeira variação, conforme especificado, e também permite configurar se a porcentagem e o texto da porcentagem devem ser exibidos. Certifique-se de configurar as variáveis $ativo, $exibir_porcentagem e $desconto_personalizado de acordo com suas preferências. Certifique-se de que o WooCommerce esteja instalado e ativado no seu site para que esta função funcione corretamente.

function exibir_desconto_apos_preco() {
    global $product;

    $ativo = true; // Defina como true para ativar a função e false para desativar.
    $exibir_porcentagem = true; // Defina como true para exibir a porcentagem e false para não exibi-la.

    if ($ativo) {
        if ($product->is_type('simple')) {
            $preco_original = $product->get_regular_price();
            $preco_promocao = $product->get_sale_price();
        } elseif ($product->is_type('variable')) {
            $variacoes = $product->get_available_variations();
            $variedade_selecionada = $product->get_default_attributes();

            if (!empty($variedade_selecionada)) {
                foreach ($variacoes as $variacao) {
                    if ($variacao['attributes'] == $variedade_selecionada) {
                        $preco_original = $variacao['display_regular_price'];
                        $preco_promocao = $variacao['display_price'];
                        break;
                    }
                }
            } else {
                $primeira_variacao = reset($variacoes);
                $preco_original = $primeira_variacao['display_regular_price'];
                $preco_promocao = $primeira_variacao['display_price'];
            }
        } else {
            return;
        }

        // Defina o desconto personalizado em porcentagem.
        $desconto_personalizado = 10; // Defina o valor do desconto desejado.

        if (empty($preco_promocao)) {
            $preco_com_desconto = $preco_original * (1 - ($desconto_personalizado / 100));
        } else {
            $preco_com_desconto = $preco_promocao * (1 - ($desconto_personalizado / 100));
        }

        $texto_customizado = "Texto customizado após o preço com desconto aplicado";

        $output = wc_price($preco_com_desconto);

        if ($exibir_porcentagem) {
            $output .= " $texto_customizado ($desconto_personalizado%) Texto após a porcentagem.";
        } else {
            $output .= " $texto_customizado Texto após o preço com desconto aplicado.";
        }

        echo '<p>' . $output . '</p>';
    }
}

// Adicione o desconto após o preço nas páginas do produto e da loja.
add_action('woocommerce_after_shop_loop_item', 'exibir_desconto_apos_preco', 10);
add_action('woocommerce_single_product_summary', 'exibir_desconto_apos_preco', 11);

Para complementar a função com a frase “Texto personalizado” e o valor que a pessoa ganhou de desconto, você pode adicionar o seguinte código após a exibição dos dados do desconto na função:

function exibir_desconto_apos_preco() {
    global $product;

    $ativo = true; // Defina como true para ativar a função e false para desativar.
    $exibir_porcentagem = true; // Defina como true para exibir a porcentagem e false para não exibi-la.

    if ($ativo) {
        if ($product->is_type('simple')) {
            $preco_original = $product->get_regular_price();
            $preco_promocao = $product->get_sale_price();
        } elseif ($product->is_type('variable')) {
            $variacoes = $product->get_available_variations();
            $variedade_selecionada = $product->get_default_attributes();

            if (!empty($variedade_selecionada)) {
                foreach ($variacoes as $variacao) {
                    if ($variacao['attributes'] == $variedade_selecionada) {
                        $preco_original = $variacao['display_regular_price'];
                        $preco_promocao = $variacao['display_price'];
                        break;
                    }
                }
            } else {
                $primeira_variacao = reset($variacoes);
                $preco_original = $primeira_variacao['display_regular_price'];
                $preco_promocao = $primeira_variacao['display_price'];
            }
        } else {
            return;
        }

        // Defina o desconto personalizado em porcentagem.
        $desconto_personalizado = 10; // Defina o valor do desconto desejado.

        if (empty($preco_promocao)) {
            $preco_com_desconto = $preco_original * (1 - ($desconto_personalizado / 100));
        } else {
            $preco_com_desconto = $preco_promocao * (1 - ($desconto_personalizado / 100));
        }

        // Calcula o valor economizado
        $valor_economizado = $preco_original - $preco_com_desconto;

        // Texto personalizado
        $texto_adicional = "Texto personalizado e ganhe " . wc_price($valor_economizado);

        $output = wc_price($preco_com_desconto);

        if ($exibir_porcentagem) {
            $output .= " ($desconto_personalizado%)";
        }

        // Adiciona o texto personalizado e o valor economizado à saída
        $output .= " $texto_adicional";

        echo '<p>' . $output . '</p';
    }
}

// Adicione o desconto após o preço nas páginas do produto e da loja.
add_action('woocommerce_after_shop_loop_item', 'exibir_desconto_apos_preco', 10);
add_action('woocommerce_single_product_summary', 'exibir_desconto_apos_preco', 11);

Agora, a função exibirá o preço com desconto, a porcentagem (se configurada para exibição), o texto personalizado e o valor economizado após o preço do produto. Certifique-se de configurar as variáveis $ativo, $exibir_porcentagem e $desconto_personalizado de acordo com suas preferências. Certifique-se também de que o WooCommerce esteja instalado e ativado no seu site para que esta função funcione corretamente.