controller.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. add_action( 'parse_request', 'wpcf7_control_init', 20, 0 );
  3. function wpcf7_control_init() {
  4. if ( WPCF7_Submission::is_restful() ) {
  5. return;
  6. }
  7. if ( isset( $_POST['_wpcf7'] ) ) {
  8. $contact_form = wpcf7_contact_form( (int) $_POST['_wpcf7'] );
  9. if ( $contact_form ) {
  10. $contact_form->submit();
  11. }
  12. }
  13. }
  14. add_action( 'wp_enqueue_scripts', 'wpcf7_do_enqueue_scripts', 10, 0 );
  15. function wpcf7_do_enqueue_scripts() {
  16. if ( wpcf7_load_js() ) {
  17. wpcf7_enqueue_scripts();
  18. }
  19. if ( wpcf7_load_css() ) {
  20. wpcf7_enqueue_styles();
  21. }
  22. }
  23. function wpcf7_enqueue_scripts() {
  24. $in_footer = true;
  25. if ( 'header' === wpcf7_load_js() ) {
  26. $in_footer = false;
  27. }
  28. wp_enqueue_script( 'contact-form-7',
  29. wpcf7_plugin_url( 'includes/js/scripts.js' ),
  30. array( 'jquery' ), WPCF7_VERSION, $in_footer );
  31. $wpcf7 = array(
  32. 'apiSettings' => array(
  33. 'root' => esc_url_raw( rest_url( 'contact-form-7/v1' ) ),
  34. 'namespace' => 'contact-form-7/v1',
  35. ),
  36. );
  37. if ( defined( 'WP_CACHE' ) and WP_CACHE ) {
  38. $wpcf7['cached'] = 1;
  39. }
  40. if ( wpcf7_support_html5_fallback() ) {
  41. $wpcf7['jqueryUi'] = 1;
  42. }
  43. wp_localize_script( 'contact-form-7', 'wpcf7', $wpcf7 );
  44. do_action( 'wpcf7_enqueue_scripts' );
  45. }
  46. function wpcf7_script_is() {
  47. return wp_script_is( 'contact-form-7' );
  48. }
  49. function wpcf7_enqueue_styles() {
  50. wp_enqueue_style( 'contact-form-7',
  51. wpcf7_plugin_url( 'includes/css/styles.css' ),
  52. array(), WPCF7_VERSION, 'all' );
  53. if ( wpcf7_is_rtl() ) {
  54. wp_enqueue_style( 'contact-form-7-rtl',
  55. wpcf7_plugin_url( 'includes/css/styles-rtl.css' ),
  56. array(), WPCF7_VERSION, 'all' );
  57. }
  58. do_action( 'wpcf7_enqueue_styles' );
  59. }
  60. function wpcf7_style_is() {
  61. return wp_style_is( 'contact-form-7' );
  62. }
  63. /* HTML5 Fallback */
  64. add_action( 'wp_enqueue_scripts', 'wpcf7_html5_fallback', 20, 0 );
  65. function wpcf7_html5_fallback() {
  66. if ( ! wpcf7_support_html5_fallback() ) {
  67. return;
  68. }
  69. if ( wpcf7_script_is() ) {
  70. wp_enqueue_script( 'jquery-ui-datepicker' );
  71. wp_enqueue_script( 'jquery-ui-spinner' );
  72. }
  73. if ( wpcf7_style_is() ) {
  74. wp_enqueue_style( 'jquery-ui-smoothness',
  75. wpcf7_plugin_url(
  76. 'includes/js/jquery-ui/themes/smoothness/jquery-ui.min.css' ),
  77. array(), '1.11.4', 'screen' );
  78. }
  79. }