WordPress+CF7 – výsledek shortcodu – v mailu OK, jinde špatně
-
Ahoj, pokusam sa zobrazit vysledok vlastneho shortcodu na stranke anebo v samotne forme CF7, ale vzdy sa zobrazi vysledok shortcodu pred zadanim udajov do CF7, ale do mailu pride spravny vysledok po zadani udajov 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 treba zmenit? Alebo dodat? Dekujem.
- Téma ‘WordPress+CF7 – výsledek shortcodu – v mailu OK, jinde špatně’ uzatvorená pre ďalšie odpovede.