Ukrycie wersji contact form 7

0

Hej w jaki sposób mogę ukryć wersję contact forma ? Chodzi o to żeby nie był widoczny w kodzie źródłowym

  <input name="_wpcf7_version" value="4.9" type="hidden">
2

Zmodyfikować skrypt wtyczki, żeby tego tam nie wrzucała ?

1

Niech kod formularza nie będzie osadzony na sztywno, ale niech jakiś skrypt JS go tworzy dynamicznie. Ale i tak nie jesteś w stanie na 100% się zabezpieczyć.

Zasada jest taka - wszystko, co się znajdzie w przeglądarce (lub w inny sposób po stronie klienta) da się odczytać. Jedynie kwestia jest taka, ile trzeba będzie się nagimnastykować, żeby się do tego dobrać.

0

Co do bezpieczeństwa rozumiem, ale tutaj akurat mam taki wymóg że musi być tak zrobione i nie wiem jak się do tego zabrać w najprostszy sposób

1

A co rozumiesz pod pojęciem "ukryć"? Jeśli to nie jest potrzebne do działania to po prostu tego nie przesyłaj. A jeśli jest konieczne, to i tak musi trafić do przeglądarki - czyli jak mówiłem, jak ktoś będzie chciał to i tak się do tego dokopie.
Czy możesz lepiej i bardziej szczegółowo opisać problem?

0

Chodzi o to żeby w źrodle strony nie była widoczna ta generowana przez wtyczkę linijka
<input name="_wpcf7_version" value="4.9" type="hidden">

1

No to tak, jak napisał @UglyMan - modyfikacja kodu wtyczki, która to generuje. Albo, jeśli się nie da, to jakiś skrypt w JS, który przejrzy kod strony (już po załadowaniu do przeglądarki) i skasuje niechciane fragmenty. Tylko zauważ, że pole name po coś tam jest, więc jest ryzyko, że ta wtyczka (albo coś innego) może po takim zabiegu przestać działać - bo będzie szukać jakiegoś elementu, którego nie znajdzie, odpowiedź wysłana formularzem nie zostanie obsłużona itp.

0

@UglyMan: Tak jest to jakieś rozwiązanie ale będzie problem przy aktualizacji wtyczek, zwłaszcza dlatego że robimy to przez git'a

0

@LynxBings: Albo rybki, albo akwarium. Żeby to zrobić przy każdym updacie to raczej nie będzie dwa dni roboty. Nie znam się na PHP, ale może da się nadpisać jedną funkcję, żeby to jakoś działało.

0

@LynxBings: Na pewno nie będzie mądre modyfikować kod źródłowy wtyczki bo przy aktualizacji i tak wróci z powrotem. Nie wiem czemu chcesz ukryć wersję C7F skoro i tak będzie ją widać w JS'ie (przykładowo):

<script type="text/javascript" src="http://site.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=5.4.1" id="contact-form-7-js"></script>

Jeżeli jednak chcesz to ukryć to ja bym zrobił w ten sposób.

  1. Do zmiennej $form przypisujesz TO co zwróci shortcode C7F
  2. Regexp "usuwasz" hidden field z wersją
  3. Twój shortcode wyrzuca na ekran kod już BEZ hidden fielda
0

@leonpro778: Ja próbuje zrobić w ten sposób

add_action( 'wpcf7_init', 'wpcf7_version_change', 20, 1 );

function wpcf7_version_change() {

    if ( defined( 'WPCF7_VERSION' ) ) {

        $value = md5('version');

        define( 'WPCF7_VERSION', $value );

        if ( !empty( $value ) ) {
            return null;
        }
    }
}

niestey nie działa, myślałem że filtrami można

a tutaj próbuje jak sugerujesz, dodałem do functions.php lecz niestey sypie błędami

$form = do_shortcode();
preg_replace('test',$form);
echo $form;
0

@LynxBings: rozumiem, że w do_shrotcode podajesz shortcode :) Co do drugiej linijki to preg_replace tak nie działa.

https://stackoverflow.com/questions/52834783/remove-tags-and-elements-in-it-with-preg-replace-php/52835106

0

@leonpro778:

$form = do_shortcode( '[contact-form-7 id="25" title="test"]' );
preg_replace('<input.*?name\s*?=[\s*?\'\"]_wpcf7_version[\'\"].*?>', '\2', $form);;
echo $form;

Możesz z tym pomóc?

1 użytkowników online, w tym zalogowanych: 0, gości: 1