IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

Aktivity
Avatar
Jaroslav Nytra:28.4.2019 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.4.2019 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.