I can not hook into wpcf7_mail_sent in my custom plugin php class
In my Wordpress plugin, I have a php class in which I want to hook into the contact form 7 hook wpcf7_mail_sent
. But it does not work for me.
the do_something() does not come in to the hook process.
I guess that I have registered that hook in a wrong place (__construct()
).
Could you please help me?
<?php
class MyCF7 {
public function __construct() {
add_action( 'wpcf7_mail_sent', array( $this, 'do_something' ) );
}
public function do_something() {
}
}
Expansion :
<?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' ) );
Now my question is: How can i redirect to an url when a contact form is submitted?
php wordpress contact-form-7
|
show 2 more comments
In my Wordpress plugin, I have a php class in which I want to hook into the contact form 7 hook wpcf7_mail_sent
. But it does not work for me.
the do_something() does not come in to the hook process.
I guess that I have registered that hook in a wrong place (__construct()
).
Could you please help me?
<?php
class MyCF7 {
public function __construct() {
add_action( 'wpcf7_mail_sent', array( $this, 'do_something' ) );
}
public function do_something() {
}
}
Expansion :
<?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' ) );
Now my question is: How can i redirect to an url when a contact form is submitted?
php wordpress contact-form-7
It's generally not a good idea to put action hooks in the class constructor, gives you a really tightly coupled code, plus every time you instantiate a class, you have an action call. Also are you instantiating your class at all? As a last resort see if increasing the priority of that hook will work.
– dingo_d
Nov 24 '18 at 14:09
Thank you @dingo_d. Yes I've instantiated my class and other hooks are working in the instantiated object.
– Iman Kiani
Nov 24 '18 at 14:13
@dingo_d Also increasing the priority of that hook didn't work.
– Iman Kiani
Nov 24 '18 at 14:28
@dingo_d I have anactivate()
member function and have registered it viaregister_activation_hook
. I added hookwpcf7_mail_sent
in theactivate()
method, but it did not work too. After that I added it to the__construct()
.
– Iman Kiani
Nov 24 '18 at 14:39
@dingo_d I think i made a mistake. In theactivate()
method it will not be triggered, but be triggered in the__construct()
. Now , I want to redirect to a custom url, but it does not redirect in the__construct()
.
– Iman Kiani
Nov 24 '18 at 17:35
|
show 2 more comments
In my Wordpress plugin, I have a php class in which I want to hook into the contact form 7 hook wpcf7_mail_sent
. But it does not work for me.
the do_something() does not come in to the hook process.
I guess that I have registered that hook in a wrong place (__construct()
).
Could you please help me?
<?php
class MyCF7 {
public function __construct() {
add_action( 'wpcf7_mail_sent', array( $this, 'do_something' ) );
}
public function do_something() {
}
}
Expansion :
<?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' ) );
Now my question is: How can i redirect to an url when a contact form is submitted?
php wordpress contact-form-7
In my Wordpress plugin, I have a php class in which I want to hook into the contact form 7 hook wpcf7_mail_sent
. But it does not work for me.
the do_something() does not come in to the hook process.
I guess that I have registered that hook in a wrong place (__construct()
).
Could you please help me?
<?php
class MyCF7 {
public function __construct() {
add_action( 'wpcf7_mail_sent', array( $this, 'do_something' ) );
}
public function do_something() {
}
}
Expansion :
<?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' ) );
Now my question is: How can i redirect to an url when a contact form is submitted?
php wordpress contact-form-7
php wordpress contact-form-7
edited Nov 25 '18 at 14:36
Iman Kiani
asked Nov 24 '18 at 14:05
Iman KianiIman Kiani
63
63
It's generally not a good idea to put action hooks in the class constructor, gives you a really tightly coupled code, plus every time you instantiate a class, you have an action call. Also are you instantiating your class at all? As a last resort see if increasing the priority of that hook will work.
– dingo_d
Nov 24 '18 at 14:09
Thank you @dingo_d. Yes I've instantiated my class and other hooks are working in the instantiated object.
– Iman Kiani
Nov 24 '18 at 14:13
@dingo_d Also increasing the priority of that hook didn't work.
– Iman Kiani
Nov 24 '18 at 14:28
@dingo_d I have anactivate()
member function and have registered it viaregister_activation_hook
. I added hookwpcf7_mail_sent
in theactivate()
method, but it did not work too. After that I added it to the__construct()
.
– Iman Kiani
Nov 24 '18 at 14:39
@dingo_d I think i made a mistake. In theactivate()
method it will not be triggered, but be triggered in the__construct()
. Now , I want to redirect to a custom url, but it does not redirect in the__construct()
.
– Iman Kiani
Nov 24 '18 at 17:35
|
show 2 more comments
It's generally not a good idea to put action hooks in the class constructor, gives you a really tightly coupled code, plus every time you instantiate a class, you have an action call. Also are you instantiating your class at all? As a last resort see if increasing the priority of that hook will work.
– dingo_d
Nov 24 '18 at 14:09
Thank you @dingo_d. Yes I've instantiated my class and other hooks are working in the instantiated object.
– Iman Kiani
Nov 24 '18 at 14:13
@dingo_d Also increasing the priority of that hook didn't work.
– Iman Kiani
Nov 24 '18 at 14:28
@dingo_d I have anactivate()
member function and have registered it viaregister_activation_hook
. I added hookwpcf7_mail_sent
in theactivate()
method, but it did not work too. After that I added it to the__construct()
.
– Iman Kiani
Nov 24 '18 at 14:39
@dingo_d I think i made a mistake. In theactivate()
method it will not be triggered, but be triggered in the__construct()
. Now , I want to redirect to a custom url, but it does not redirect in the__construct()
.
– Iman Kiani
Nov 24 '18 at 17:35
It's generally not a good idea to put action hooks in the class constructor, gives you a really tightly coupled code, plus every time you instantiate a class, you have an action call. Also are you instantiating your class at all? As a last resort see if increasing the priority of that hook will work.
– dingo_d
Nov 24 '18 at 14:09
It's generally not a good idea to put action hooks in the class constructor, gives you a really tightly coupled code, plus every time you instantiate a class, you have an action call. Also are you instantiating your class at all? As a last resort see if increasing the priority of that hook will work.
– dingo_d
Nov 24 '18 at 14:09
Thank you @dingo_d. Yes I've instantiated my class and other hooks are working in the instantiated object.
– Iman Kiani
Nov 24 '18 at 14:13
Thank you @dingo_d. Yes I've instantiated my class and other hooks are working in the instantiated object.
– Iman Kiani
Nov 24 '18 at 14:13
@dingo_d Also increasing the priority of that hook didn't work.
– Iman Kiani
Nov 24 '18 at 14:28
@dingo_d Also increasing the priority of that hook didn't work.
– Iman Kiani
Nov 24 '18 at 14:28
@dingo_d I have an
activate()
member function and have registered it via register_activation_hook
. I added hook wpcf7_mail_sent
in the activate()
method, but it did not work too. After that I added it to the __construct()
.– Iman Kiani
Nov 24 '18 at 14:39
@dingo_d I have an
activate()
member function and have registered it via register_activation_hook
. I added hook wpcf7_mail_sent
in the activate()
method, but it did not work too. After that I added it to the __construct()
.– Iman Kiani
Nov 24 '18 at 14:39
@dingo_d I think i made a mistake. In the
activate()
method it will not be triggered, but be triggered in the __construct()
. Now , I want to redirect to a custom url, but it does not redirect in the __construct()
.– Iman Kiani
Nov 24 '18 at 17:35
@dingo_d I think i made a mistake. In the
activate()
method it will not be triggered, but be triggered in the __construct()
. Now , I want to redirect to a custom url, but it does not redirect in the __construct()
.– Iman Kiani
Nov 24 '18 at 17:35
|
show 2 more comments
1 Answer
1
active
oldest
votes
I am inspired from Contact Form 7 redirection plugin and solved my problem.
As the Contact Form 7 Module handles it's form submission by javascript, I must add a javascript event listener and enqueue that js file to my Wordpress javascript files.
<?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 file
jQuery(document).ready(function () {
wpcf7_redirect_mailsent_handler()
})
function wpcf7_redirect_mailsent_handler () {
document.addEventListener('wpcf7mailsent', function (event) {
location.href = 'https://google.com'
}, false)
}
Sorry I should have asked this question in another way.
I think the problem still remains. If I want to redirect to a dynamic url, what shall I do?
– Iman Kiani
Nov 25 '18 at 18:57
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53458957%2fi-can-not-hook-into-wpcf7-mail-sent-in-my-custom-plugin-php-class%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I am inspired from Contact Form 7 redirection plugin and solved my problem.
As the Contact Form 7 Module handles it's form submission by javascript, I must add a javascript event listener and enqueue that js file to my Wordpress javascript files.
<?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 file
jQuery(document).ready(function () {
wpcf7_redirect_mailsent_handler()
})
function wpcf7_redirect_mailsent_handler () {
document.addEventListener('wpcf7mailsent', function (event) {
location.href = 'https://google.com'
}, false)
}
Sorry I should have asked this question in another way.
I think the problem still remains. If I want to redirect to a dynamic url, what shall I do?
– Iman Kiani
Nov 25 '18 at 18:57
add a comment |
I am inspired from Contact Form 7 redirection plugin and solved my problem.
As the Contact Form 7 Module handles it's form submission by javascript, I must add a javascript event listener and enqueue that js file to my Wordpress javascript files.
<?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 file
jQuery(document).ready(function () {
wpcf7_redirect_mailsent_handler()
})
function wpcf7_redirect_mailsent_handler () {
document.addEventListener('wpcf7mailsent', function (event) {
location.href = 'https://google.com'
}, false)
}
Sorry I should have asked this question in another way.
I think the problem still remains. If I want to redirect to a dynamic url, what shall I do?
– Iman Kiani
Nov 25 '18 at 18:57
add a comment |
I am inspired from Contact Form 7 redirection plugin and solved my problem.
As the Contact Form 7 Module handles it's form submission by javascript, I must add a javascript event listener and enqueue that js file to my Wordpress javascript files.
<?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 file
jQuery(document).ready(function () {
wpcf7_redirect_mailsent_handler()
})
function wpcf7_redirect_mailsent_handler () {
document.addEventListener('wpcf7mailsent', function (event) {
location.href = 'https://google.com'
}, false)
}
Sorry I should have asked this question in another way.
I am inspired from Contact Form 7 redirection plugin and solved my problem.
As the Contact Form 7 Module handles it's form submission by javascript, I must add a javascript event listener and enqueue that js file to my Wordpress javascript files.
<?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 file
jQuery(document).ready(function () {
wpcf7_redirect_mailsent_handler()
})
function wpcf7_redirect_mailsent_handler () {
document.addEventListener('wpcf7mailsent', function (event) {
location.href = 'https://google.com'
}, false)
}
Sorry I should have asked this question in another way.
edited Nov 25 '18 at 17:48
answered Nov 25 '18 at 17:26
Iman KianiIman Kiani
63
63
I think the problem still remains. If I want to redirect to a dynamic url, what shall I do?
– Iman Kiani
Nov 25 '18 at 18:57
add a comment |
I think the problem still remains. If I want to redirect to a dynamic url, what shall I do?
– Iman Kiani
Nov 25 '18 at 18:57
I think the problem still remains. If I want to redirect to a dynamic url, what shall I do?
– Iman Kiani
Nov 25 '18 at 18:57
I think the problem still remains. If I want to redirect to a dynamic url, what shall I do?
– Iman Kiani
Nov 25 '18 at 18:57
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53458957%2fi-can-not-hook-into-wpcf7-mail-sent-in-my-custom-plugin-php-class%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
It's generally not a good idea to put action hooks in the class constructor, gives you a really tightly coupled code, plus every time you instantiate a class, you have an action call. Also are you instantiating your class at all? As a last resort see if increasing the priority of that hook will work.
– dingo_d
Nov 24 '18 at 14:09
Thank you @dingo_d. Yes I've instantiated my class and other hooks are working in the instantiated object.
– Iman Kiani
Nov 24 '18 at 14:13
@dingo_d Also increasing the priority of that hook didn't work.
– Iman Kiani
Nov 24 '18 at 14:28
@dingo_d I have an
activate()
member function and have registered it viaregister_activation_hook
. I added hookwpcf7_mail_sent
in theactivate()
method, but it did not work too. After that I added it to the__construct()
.– Iman Kiani
Nov 24 '18 at 14:39
@dingo_d I think i made a mistake. In the
activate()
method it will not be triggered, but be triggered in the__construct()
. Now , I want to redirect to a custom url, but it does not redirect in the__construct()
.– Iman Kiani
Nov 24 '18 at 17:35