Woocommerce 摘取电子商务订阅电子邮件(通过php而不是管理仪表板)

Woocommerce 摘取电子商务订阅电子邮件(通过php而不是管理仪表板),woocommerce,hook-woocommerce,woocommerce-subscriptions,Woocommerce,Hook Woocommerce,Woocommerce Subscriptions,我正在尝试禁用一些WC订阅电子邮件(这样它们就不会被发送)。我知道我可以在管理员设置区域手动执行此操作,但是我尝试通过PHP(在插件中)执行此操作。这样做的原因是,当它从测试站点移动到活动站点时,可以简单地复制相关文件,并且最好不进行任何手动设置更改 例如,删除发送给站点管理员的新续订订单 add_action( 'woocommerce_email', 'SA_unhook_unneeded_emails' ); function SA_unhook_unneeded_emails( $ema

我正在尝试禁用一些WC订阅电子邮件(这样它们就不会被发送)。我知道我可以在管理员设置区域手动执行此操作,但是我尝试通过PHP(在插件中)执行此操作。这样做的原因是,当它从测试站点移动到活动站点时,可以简单地复制相关文件,并且最好不进行任何手动设置更改

例如,删除发送给站点管理员的新续订订单

add_action( 'woocommerce_email', 'SA_unhook_unneeded_emails' );
function SA_unhook_unneeded_emails( $email_class ) {
    //remove new_renewal_order email (sent to admin)
    remove_action( 'woocommerce_order_status_pending_to_processing_renewal_notification', array( $this, 'trigger' ) );
    remove_action( 'woocommerce_order_status_pending_to_completed_renewal_notification', array( $this, 'trigger' ) );
    remove_action( 'woocommerce_order_status_pending_to_on-hold_renewal_notification', array( $this, 'trigger' ) );
    remove_action( 'woocommerce_order_status_failed_to_processing_renewal_notification', array( $this, 'trigger' ) );
    remove_action( 'woocommerce_order_status_failed_to_completed_renewal_notification', array( $this, 'trigger' ) );
    remove_action( 'woocommerce_order_status_failed_to_on-hold_renewal_notification', array( $this, 'trigger' ) );
    //remove_action( 'woocommerce_order_status_completed_renewal_notification', array( $this, 'trigger' ) );

}
取消最后一个remove_操作的注释没有任何区别。电子邮件仍在发送。我试着把
woocommerce\u email
改成
wp\u head
,看看是否有什么不同,但没有任何不同

WC订阅挂钩上似乎没有什么文档(至少我能找到),所以我正在努力弄清楚我到底需要做什么才能让它正常工作


任何帮助都将不胜感激。

更不用说找到它了-我所需要的只是一个良好的睡眠!对于那些后来偶然发现这一点的人,详情如下

您需要使用
“woocommerce\u email\u enabled\u”。此->id
过滤器。可以在该电子邮件类型的相关类文件中找到id(
this->id
)。e、 g

  • 新订单(发送给管理员)位于
    class wc email New order.php
    woocommerce/includes
    文件夹)包含
    $this->id='New_order'
  • 新的续订订单(发送给管理员)是
    New\u-renewal\u-order
  • 续订订单(发送给客户)是
    customer\u processing\u Renewal\u order
    customer\u completed\u Renewal\u order

没关系,我找到了它——我所需要的只是一夜好眠!对于那些后来偶然发现这一点的人,详情如下

您需要使用
“woocommerce\u email\u enabled\u”。此->id
过滤器。可以在该电子邮件类型的相关类文件中找到id(
this->id
)。e、 g

  • 新订单(发送给管理员)位于
    class wc email New order.php
    woocommerce/includes
    文件夹)包含
    $this->id='New_order'
  • 新的续订订单(发送给管理员)是
    New\u-renewal\u-order
  • 续订订单(发送给客户)是
    customer\u processing\u Renewal\u order
    customer\u completed\u Renewal\u order
//stop emails without using the admin dashboard to manually set enabled/disabled status
add_filter( 'woocommerce_email_enabled_new_order', 'SA_stopemails', 10, 2); //new order sent to admin
add_filter( 'woocommerce_email_enabled_customer_on_hold_order', 'SA_stopemails', 10, 2); //order on hold sent to customer
add_filter( 'woocommerce_email_enabled_customer_processing_order', 'SA_stopemails', 10, 2); //order in processing sent to customer
add_filter( 'woocommerce_email_enabled_new_renewal_order', 'SA_stopemails', 10, 2); //new renewal order sent to admin
add_filter( 'woocommerce_email_enabled_customer_processing_renewal_order', 'SA_stopemails', 10, 2); //renewal order processing sent to customer
add_filter( 'woocommerce_email_enabled_customer_completed_renewal_order', 'SA_stopemails', 10, 2); //renewal order completed sent to customer

function SA_stopemails( $active, $order ) {
    return false;
}