在我的Wordpress插件中,我有一个php类,我想在其中插入联系表7 hook wpcf7_mail_sent
。但这对我不起作用。
do_something()不会进入挂接进程。
我想我已经在错误的位置(__construct()
)注册了该钩子。
能请你帮我吗?
<?php
class MyCF7 {
public function __construct() {
add_action( 'wpcf7_mail_sent', array( $this, 'do_something' ) );
}
public function do_something() {
}
}
扩展:
<?php
/*
Plugin Name: Contact Form 7 - My plugin
Description: My Integration
Version: 1.0
*/
class MyCF7 {
public function __construct() {
add_action( 'wpcf7_mail_sent', array( $this, 'do_something' ) );
}
public function activate() {
// add_action( 'wpcf7_mail_sent', array( $this, 'do_something' ) );
// This hook would not be registered in activate() method.
}
public function do_something( $contact_form ) {
error_log( 'do_something was triggered.' );
// Header( 'Location: https://google.com' );
}
}
$my_cf7 = new MyCF7();
register_activation_hook( __FILE__, array( $my_cf7, 'activate' ) );
现在我的问题是:提交联系表格后,如何重定向到网址?
答案 0 :(得分:0)
我从Contact Form 7 redirection插件中得到启发,并解决了我的问题。
当Contact Form 7 Module通过javascript处理表单提交时,我必须添加一个javascript事件侦听器并将js文件排队到我的Wordpress javascript文件中。
<?php
/*
Plugin Name: Contact Form 7 - My plugin
Description: My Integration
Version: 1.0
*/
class MyCF7 {
public function __construct() {
$this->plugin_url = plugin_dir_url( __FILE__ );
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_frontend' ) );
}
public function enqueue_frontend() {
wp_enqueue_script( 'wpcf7-redirect-script', $this->plugin_url . 'js/wpcf7-redirect-script.js', array(), null, true );
}
}
wpcf7-redirect-script.js文件
jQuery(document).ready(function () {
wpcf7_redirect_mailsent_handler()
})
function wpcf7_redirect_mailsent_handler () {
document.addEventListener('wpcf7mailsent', function (event) {
location.href = 'https://google.com'
}, false)
}
对不起,我应该用另一种方式问这个问题。