Zamiana input submit na button w contact form 7
Tak się jakoś ostatnio złożyło, że dwa razy musiałem sięgnąć do kodu modyfikującego popularną wtyczkę Contact Form 7. Wtyczka ta ma własne funkcje, które pozwalają modyfikować wygląd formularza i wiele innych rzeczy. Jest trochę podpowiedzi i instrukcji w necie ale trzeba zwrócić uwagę na jedną ważną rzecz. Contact Form 7 przestał obsługiwać funkcję wpcf7_add_shortcode. Zamiast tego musimy użyć wpcf7_add_form_tag.
Zadanie było takie zamienić guzik wysyłający formularz z input na button ponieważ jest sporo skryptów, które nie lubią tego inputa i formularz najzwyczajniej w świecie nie działa.
add_action( 'init', 'wpcf7_add_shortcode_submit_button' ); function wpcf7_add_shortcode_submit_button() { wpcf7_remove_shortcode('submit'); wpcf7_add_form_tag( 'submit', 'wpcf7_submit_button_shortcode_handler' ); } function wpcf7_submit_button_shortcode_handler( $tag ) { $tag = new WPCF7_Shortcode( $tag ); $class = wpcf7_form_controls_class( $tag-&gt;type ); $atts = array(); $atts['class'] = $tag-&gt;get_class_option( $class ); $atts['id'] = $tag-&gt;get_id_option(); $atts['tabindex'] = $tag-&gt;get_option( 'tabindex', 'int', true ); $value = isset( $tag-&gt;values[0] ) ? $tag-&gt;values[0] : ''; if ( empty( $value ) ) $value = __( 'Send', 'contact-form-7' ); $atts['type'] = 'submit'; $atts = wpcf7_format_atts( $atts ); $html = sprintf( '<button %1$s>%2$s</button>', $atts, $value ); return $html; }
Przy okazji skoro jesteśmy przy Contact Form 7 niebawem pokażę jak wyłączyć jego skrypty ze strony głównej i innych stron gdzie formularza po prostu nie ma. To samo co robiliśmy z niepotrzebnym kodem woocommerce.