对于我们的WordPress站点(使用联系人表单7),我们编写了一些定制php,在提交特定CF7时运行后台进程。我们在儿童主题的功能范围内做到了这一点。php,引用文件放置在子主题内的子文件夹中。
来自函数的代码。php:
add_action( \'wpcf7_before_send_mail\', \'vul_submit\' );
function vul_submit( $contact_form ) {
$title = $contact_form->title;
$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
$posted_data = $submission->get_posted_data();
}
if ( \'SVT\' == $title ) {
require dirname(__FILE__) . "/ST/index.php";
}
}
The
index.php
包含或调用其余代码。这目前效果很好——当提交名为“SVT”的CF7表单时,预期的函数就会运行。
然而,当我尝试将其移出子主题,而改为特定于站点的主题时SVTplugin.php
, 它不再工作了。我遵循这里的指示http://www.wpbeginner.com/beginners-guide/what-why-and-how-tos-of-creating-a-site-specific-wordpress-plugin/, 并将上面引用的代码移出函数。php转换为自己的插件文件(以及所有支持文件)。
我可以确认插件已激活,并且原始函数中存在冲突的函数。php已被注释掉。表单仍在提交——除了后台不再发生任何事情。
通过添加一些“调试”file_put_contents
, 看来SVTplugin.php
未在表单提交时调用。不确定正确的术语是什么,但我怀疑add_action
此处未激活?我需要单独的do_action
还是什么?
我想这里可能遗漏了一件非常简单的事情——任何指导都将不胜感激。谢谢