我正在寻找一个插件,但没有用。无论如何,我正在使用ACF Pro构建一个自定义Wordpress主题(它工作得很好),并为每个用户添加了许多不同的自定义字段(如价格、位置、技能等)
我想做的是控制价格,或者至少在用户更改某个ACF字段(如价格或位置)时收到一封电子邮件,以便我可以比较原始值和新值。假设用户的价格为20欧元/小时-如果他将该值更改为30欧元,我希望收到电子邮件或能够批准这些更改。但在此期间不应停用用户配置文件,我只想在这些更改生效之前批准它们。
我真的很感激任何帮助!
我正在寻找一个插件,但没有用。无论如何,我正在使用ACF Pro构建一个自定义Wordpress主题(它工作得很好),并为每个用户添加了许多不同的自定义字段(如价格、位置、技能等)
我想做的是控制价格,或者至少在用户更改某个ACF字段(如价格或位置)时收到一封电子邮件,以便我可以比较原始值和新值。假设用户的价格为20欧元/小时-如果他将该值更改为30欧元,我希望收到电子邮件或能够批准这些更改。但在此期间不应停用用户配置文件,我只想在这些更改生效之前批准它们。
我真的很感激任何帮助!
这个update_option()
函数有一个过滤器:
$value = apply_filters( "pre_update_option_{$option}", $new_value, $old_value );
在这个过滤器之后,还有一个过滤器not 想要使用。$value = apply_filters( \'pre_update_option\', $value, $option, $old_value );
(如果要使用该选项,则必须在回调中检查选项名称,这会增加不必要的开销。然后,您需要做什么,通过以下方式对特定选项做出反应更改内容sending a mail via wp_mail()
, 是将回调附加到该筛选器。阅读@TODO
并填写缺失的位:
<?php
/** Plugin Name: (#16621) Send mail after Option Value changed */
add_action( \'plugins_loaded\', \'166221reactMail\' );
function 166221reactMail()
{
// @TODO Add you option names (valid triggers) here:
$valid = [
\'your\',
\'option\',
\'names\',
\'here\',
];
// Attach each filter: Precise targetting option names
foreach ( $valid as $name )
{
add_filter( "pre_update_option_{$name}", function( $new, $old )
{
# @TODO Adjust check/validity of mail trigger here
if ( $new !== $old )
{
# @TODO uncomment the following line - see note below
// add_filter( \'wp_mail_from\', \'166221reactMailFrom\' );
# @TODO Adjust values for wp_mail()
wp_mail(
\'To@example.com\',
sprintf( \'Change notification from %s\', get_option( \'blogname\' ) ),
sprintf( \'Value changed from %s to %s\', $old, $new )
);
}
return $new;
}
}
}
为了更轻松地添加创建高度特定的邮件收件箱规则,您可能还需要添加以下内容:// @TODO Change "from" Name to make creating inbox rules easier
function 166221reactMailFrom( $from )
{
remove_filter( current_filter(), __FUNCTION__ );
return "foo@bar.com";
}
编辑刚刚意识到我在过滤器选项上写了一个答案,这在后元过滤器上没有任何意义。您必须将过滤器名称与来自update_metadata()
, 由以下操作触发update_post_meta()
其中$meta_type
是post
. 有两种筛选器或操作可供使用:do_action( "update_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value );
或者,如果您知道您使用post
posttype:do_action( \'update_postmeta\', $meta_id, $object_id, $meta_key, $meta_value );
如果要在值更新后触发:do_action( "updated_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value );
特别是针对post
岗位类型:do_action( \'updated_postmeta\', $meta_id, $object_id, $meta_key, $meta_value );
wp_list_authors() 提供永久链接的作者页面列表(site.com/author/john、site.com/author/jenny等)。我想使用相同的链接get_users() 或get_userdata() 而不是函数。我需要这些函数,因为我以一种非常定制的方式显示作者。然而,我不知道如何用这些函数获得适当的作者页面。(例如,一位作者的用户名是电子邮件地址wp_list_authors()-为她的作者页生成的链接用破折号代替了“@”和“.”。这意味着作者页面slug不一定与用户名相同)
我正在寻找一个插件,但没有用。无论如何,我正在使用ACF Pro构建一个自定义Wordpress主题(它工作得很好),并为每个用户添加了许多不同的自定义字段(如价格、位置、技能等)
我想做的是控制价格,或者至少在用户更改某个ACF字段(如价格或位置)时收到一封电子邮件,以便我可以比较原始值和新值。假设用户的价格为20欧元/小时-如果他将该值更改为30欧元,我希望收到电子邮件或能够批准这些更改。但在此期间不应停用用户配置文件,我只想在这些更改生效之前批准它们。
我真的很感激任何帮助!
这个update_option()
函数有一个过滤器:
$value = apply_filters( "pre_update_option_{$option}", $new_value, $old_value );
在这个过滤器之后,还有一个过滤器not 想要使用。$value = apply_filters( \'pre_update_option\', $value, $option, $old_value );
(如果要使用该选项,则必须在回调中检查选项名称,这会增加不必要的开销。然后,您需要做什么,通过以下方式对特定选项做出反应更改内容sending a mail via wp_mail()
, 是将回调附加到该筛选器。阅读@TODO
并填写缺失的位:
<?php
/** Plugin Name: (#16621) Send mail after Option Value changed */
add_action( \'plugins_loaded\', \'166221reactMail\' );
function 166221reactMail()
{
// @TODO Add you option names (valid triggers) here:
$valid = [
\'your\',
\'option\',
\'names\',
\'here\',
];
// Attach each filter: Precise targetting option names
foreach ( $valid as $name )
{
add_filter( "pre_update_option_{$name}", function( $new, $old )
{
# @TODO Adjust check/validity of mail trigger here
if ( $new !== $old )
{
# @TODO uncomment the following line - see note below
// add_filter( \'wp_mail_from\', \'166221reactMailFrom\' );
# @TODO Adjust values for wp_mail()
wp_mail(
\'To@example.com\',
sprintf( \'Change notification from %s\', get_option( \'blogname\' ) ),
sprintf( \'Value changed from %s to %s\', $old, $new )
);
}
return $new;
}
}
}
为了更轻松地添加创建高度特定的邮件收件箱规则,您可能还需要添加以下内容:// @TODO Change "from" Name to make creating inbox rules easier
function 166221reactMailFrom( $from )
{
remove_filter( current_filter(), __FUNCTION__ );
return "foo@bar.com";
}
编辑刚刚意识到我在过滤器选项上写了一个答案,这在后元过滤器上没有任何意义。您必须将过滤器名称与来自update_metadata()
, 由以下操作触发update_post_meta()
其中$meta_type
是post
. 有两种筛选器或操作可供使用:do_action( "update_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value );
或者,如果您知道您使用post
posttype:do_action( \'update_postmeta\', $meta_id, $object_id, $meta_key, $meta_value );
如果要在值更新后触发:do_action( "updated_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value );
特别是针对post
岗位类型:do_action( \'updated_postmeta\', $meta_id, $object_id, $meta_key, $meta_value );
以下是我使用的代码:function get_users(){ $all_users = get_users(); $arr=array(); foreach ($all_users as $val) { $arr[]=$val->data->user_nicename; } $resp = array ( \'data\' => j