我可以从wordpress中的functions.php执行php文件吗?

时间:2013-08-26 14:38:04

标签: php wordpress woocommerce

我正在使用一个函数来执行发送带附件的电子邮件的代码。 此功能可以连接到woocommerce的过滤器。

我想重建这个函数来执行外部php文件的代码。 这在Wordpress中是否可行?

我想从外部脚本执行它的原因是因为我想要更多功能,电子邮件的发件人和附件都是从会话中生成的。

在我的孩子主题中的function.php -

function send_invoice () 
{
    $attachments = array( WP_CONTENT_DIR . '/themes/mytheme/invoices/invoice.pdf' );
    wp_mail( 'targetmail@domain.com', 'Attachment test', 'The message', 'header', $attachments);
}
add_filter( 'woocommerce_email_attachments', 'send_invoice' );

有没有办法从我的functions.php执行php文件?

进一步阐述: 我正在尝试将以前的脚本转换为: 的functions.php

function execute_send_invoice () {
    send_invoice();
}   
add_filter( 'woocommerce_email_attachments', 'execute_send_invoice' );

然后是send_invoice()的代码;在我的functions.php之外的某个地方,例如,在myscript.php中,它位于我的模板目录中。

2 个答案:

答案 0 :(得分:1)

不用说,在PHP中运行外部脚本时应该非常小心。

如果在执行PHP文件之前没有通过wordpress完成某种预处理,那么运行外部代码有两种主要方式。使用第一个,你必须在<?php ?>标签中进一步包含PHP,但这是我个人的建议。

include('full_or_relative_php_path_to_file.php');

eval(file_get_contents('full_or_relative_php_path_to_file.php'));

答案 1 :(得分:0)

如果functions.php文件位于当前活动的主题内,则默认包含该文件。因此,您可以像平常那样访问和调用函数(就好像它是在您将调用函数的同一页面上定义的那样)。

see here