WooCommerce电子邮件附件不工作-未附加文件

时间:2019-07-06 作者:odedta

我覆盖了Woocommerce管理员的新电子邮件。另外,我还添加了一个过滤器,从ACF选项页面文件字段添加附件文件。

function attach_order_notice ( $attachments, $email_id, $order ) {
    // Only for "New Order" email notification (for admin)
    error_log( \'attachments: \'. print_r( get_field( \'email_file_attachment\', \'options\' )[\'url\'], true ) );

    //if( $email_id == \'new_order\' ){
        $attachments[] = get_field( \'email_file_attachment\', \'options\' )[\'url\'];
    //}
    return $attachments;
}
add_filter( \'woocommerce_email_attachments\', \'attach_order_notice\', 10, 3 );
当我查看日志时,我会得到一个PDF文件的URL,并且可以查看,当我收到电子邮件时,没有附加任何文件,没有附加到管理员电子邮件或客户电子邮件。

原因可能是什么?谢谢

1 个回复
SO网友:odedta

显然,Woocommerce需要一个本地路径,而不是文件的URL。为了修复,我使用了以下方法:

function attach_order_notice ( $attachments, $email_id, $order ) {
    // Only for "New Order" email notification (for admin)

    //if( $email_id == \'new_order\' ){
        $file_path = wp_upload_dir()[\'path\'];
        $file_name = get_field( \'email_file_attachment\', \'options\' )[\'filename\'];
        $attachments[] = $file_path . \'/\' . $file_name;
    //}
    return $attachments;
}
add_filter( \'woocommerce_email_attachments\', \'attach_order_notice\', 10, 3 );
我希望这对某人有所帮助。

相关推荐

Composer无法将PHP Codesniffer下载到插件

尝试安装时出错squizlabs/php_codesniffer 通过composer打包到我的WordPress插件中。我将飞轮用于本地服务器,composer 1.8.6安装在/usr/local/bin/composer.phar我还尝试在本地插件文件夹中使用composer文件,但仍然出现相同的错误。这是我在插件目录中运行的命令composer require --dev squizlabs/php_codesniffer