将我们编写的自定义php从unctions.php迁移到特定于站点的插件

时间:2017-08-15 作者:user2847768

对于我们的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";
}
}
Theindex.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 还是什么?

我想这里可能遗漏了一件非常简单的事情——任何指导都将不胜感激。谢谢

1 个回复
SO网友:user2847768

其他人留下的评论似乎暗示了从职能转变的过程。php到特定于站点的插件应该非常简单。所以我又试了一次,这次一切都很好。我想我可能在某个地方有一个错误的语法,在第二次尝试时,当我粘贴函数中的代码时得到了纠正。php新鲜。

简而言之,错误警报。但非常感谢所有的评论者,因为如果没有他们的提问,我会放弃这一点。

结束

相关推荐

将php动态变量传递给短码

我不确定我的问题是否有一个简单的解决方案。这个要求看起来很简单,但即使在我头破血流了6个小时后也找不到答案。我必须将变量从php函数传递到一个短代码,而这个短代码必须将这个变量传递到另一个短代码。Shortcode-1将打开一个弹出窗口,弹出窗口的内容由Shortcode-2创建,内容必须根据变量进行更改。我怎样才能做到这一点?我的模板中的代码。。 <a href=\"#\" class=\"open-popup-1\" variable= <?php getid(); ?>\">