Java týden
Procvič si angličtinu zdarma s naším americkým e-learningem! Learn more
Pouze tento týden sleva až 80 % na celý 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.