多站点+wp_mail-有条件地通过站点进行路由

时间:2017-08-28 作者:Ryan Dorn

我正在使用多站点,希望通过特定/有条件的站点发送电子邮件。我的用例:

打开save_post...

  • a)向父站点1的用户a发送电子邮件,b)向子站点2的用户b发送电子邮件,我猜我需要“中断”当前站点,用特定站点ID临时覆盖它,然后还原当前站点。。。我只是不知道怎么做:

    我的初始代码:

    function conditional_multisite_wp_mail( $post_id, $post, $update ) {
    
        $post_type = get_post_type($post_id);
    
        $to1 = \'[email protected]\';
        $to2 = \'[email protected]\';
        $subject = \'testing right meow\';
        $message = \'woof\';
        $headers = \'From: Derp  < [email protected] > \\r\\n\';
    
        // Trying to \'break\' current site, set the site by ID
        switch_to_blog(2); 
        wp_mail( $to1, $subject, $message, $headers, $attachments );
        // ... then restore it to the current site
        restore_current_blog();
        wp_mail( $to2, $subject, $message, $headers, $attachments );
    
    
    }
    add_action( \'save_post\', \'conditional_multisite_wp_mail\', 10, 3 );
    
    提前感谢!

  • 1 个回复
    SO网友:Ryan Dorn

    嗯,我想这是可行的:

    注意:我正在使用Postman SMTP; 对于下面的示例,我认为您必须为每个“发件人”电子邮件正确配置服务器/事务性电子邮件传递服务

    function conditional_multisite_wp_mail( $post_id, $post, $update ) {
    
        $to1 = \'[email protected]\';
        $to2 = \'[email protected]\';
        $subject1 = \'SPECIFIC: testing right meow\';
        $subject2 = \'CURRENT: testing right meow\';
        $message = \'woof\';
        $headers1 = \'From: Derp  < [email protected] > \\r\\n\';
        $headers2 = \'From: Herp  < [email protected] > \\r\\n\';
        switch_to_blog(1); // Switch to specific site
        wp_mail( $to1, $subject1, $message, $headers1, $attachments );
        restore_current_blog(); // Restore to current site
        wp_mail( $to2, $subject2, $message, $headers2, $attachments );
    
    
    }
    add_action( \'save_post\', \'conditional_multisite_wp_mail\', 10, 3 );
    

    结束

    相关推荐

    在WordPress MultiSite中使用系统脚本广告

    我有一个我不能解决的小问题。我有一个网站“多站点”系统与广告脚本。我希望我能进入排行榜横幅。这是一个示例脚本:<div id=\"\"><script src=\"\"></script><script src=\"\" ></script></div> 我已经插入了这个代码脚本,但问题是它出现在整个网络中,相反,我希望每个脚本是独立的,并且在每个子域中按区域更改广告。它更正了此召回:<?php if