Java týden Body zdarma
Využij podzimních slev a získej od nás až 40 % bodů zdarma! Více zde
Pouze tento týden sleva až 80 % na Java e-learning!

Diskuze: Wordpress+CF7 - výsledek shortcodu – v mailu OK, jinde špatně

Aktivity (1)
Avatar
Jaroslav Nytra:28. dubna 12:35

Ahoj, pokouším se zobrazit výsledek vlastního shortcodu na stránce nebo v samotné formě CF7, ale vždy se zobrazí výsledek shortcodu před zadáním údajů do CF7, přitom do mailu příjde správný výsledek po zadáni údajů do CF7.

<?php

add_filter( 'wpcf7_form_elements', 'do_shortcode' );

function cena_cf7_func() {
        $wpcf7 = WPCF7_ContactForm::get_current();
        $wpcf7data = WPCF7_Submission::get_instance();
        if ($wpcf7data) {
                $formData = $wpcf7data->get_posted_data();
        }

    $pocetStran = $formData['pocetStran'];
    $rokVyrobenia = $formData['rokVyrobenia'];
    $pocetkusov = $formData['pocetkusov'];

if ($pocetkusov === "žiadny" || $pocetkusov === "1 kus") {
  $zlava = 0;
} elseif ($pocetkusov === "2 kusy" or $pocetkusov === "3 kusy") {
  $zlava = -5;
} else {
  $zlava = -10;
}

$vekVyrobku = date("Y") - $rokVyrobenia;

if ($vekVyrobku >= "51") {
    if ($pocetStran <= "59") {
      $sadzba = "92";
  } elseif ($pocetStran >= "60" and $pocetStran <= "69") {
      $sadzba = "95";
  } elseif ($pocetStran >= "70" and $pocetStran <= "79") {
      $sadzba = "98";
  } elseif ($pocetStran >= "80" and $pocetStran <= "89") {
      $sadzba = "103";
  } elseif ($pocetStran >= "90" and $pocetStran <= "99") {
      $sadzba = "107";
  } elseif ($pocetStran >= "100" and $pocetStran <= "120") {
      $sadzba = "112";
  } elseif ($pocetStran >= "121" and $pocetStran <= "140") {
      $sadzba = "119";
  } elseif ($pocetStran >= "141") {
      $sadzba = "125";
  }
  }

$jedno = ($zlava) / 100;
$jedno_procento = 1 + ($jedno);
$cenaVyrobku = $sadzba * $jedno_procento;
$vysledna_cenaVyrobku = number_format($cenaVyrobku, 2);

        return "Výsledná cena: " . "$vysledna_cenaVyrobku" . " €";
}
add_shortcode('cena', 'pzp_cf7_func');

add_filter('wpcf7_mail_components', 'do_shortcode_mail', 10, 3);
function do_shortcode_mail( $components, $contactForm, $mailComponent ){
  if( isset($components['body']) ){
    $components['body'] = do_shortcode($components['body']);
  }
  return $components;
}

Do formy, na stranku i do mailu zadavam [cena]
Co je potřebné změnit? Ďekuji.

 
Odpovědět 28. dubna 12:35
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.