发布时从自定义帖子字段更新用户元不起作用

时间:2013-11-20 作者:Nicodimos

我正在尝试根据自定义帖子字段类型更新user\\u meta。但是,如果用户通过前端表单发布新帖子,则信息不会传输。

目前,只有通过前端表单更新列表,或通过wordpress后端发布/编辑帖子时,它才起作用。

function update_package_id($post_id) {
$post = get_post($post_id);
$author = get_userdata($post->post_author);
$author_email = $author->user_email;
$package_id = get_post_meta( $post->ID, \'package_pid\', true  );
$user_id = $author->ID;
update_user_meta($user_id, \'package_type\', $package_id);

if (function_exists( \'AC_OnUpdateUser\' )) {
$user = new WP_User( $user_id );
AC_OnUpdateUser( $user->ID, $user, FALSE );
}
}

add_action( \'publish_place\', \'update_package_id\' );
第二个函数将信息发送到mailchimp中。我在wordpress中使用了错误的操作吗?

1 个回复
SO网友:Nicodimos

所以我用的主题不是射击add_action( \'publish_place\', \'update_package_id\' );或其任何变体,例如。save_post

因此,我在函数中创建了一个自定义挂钩。从url获取帖子id的主题的php文件(请参阅$_REQUEST[\'pid\']) 下面是它的样子:

function update_package_id() {
$postinfo = $_REQUEST[\'pid\'];
$post = get_post($postinfo);
$author = get_userdata($post->post_author);
$author_email = $author->user_email;
$package_id = get_post_meta( $post->ID, \'package_pid\', true  );
$user_id = $author->ID;
update_user_meta($user_id, \'package_type\', $package_id);

if (function_exists( \'AC_OnUpdateUser\' )) {
$user = new WP_User( $user_id );
AC_OnUpdateUser( $user->ID, $user, FALSE );
}} add_action( \'updateusermet\', \'update_package_id\' ); 
然后就接通了do_action(\'updateusermet\'); 在之前底部的post submitted success页面上get_sidebar();

我希望这能帮助别人

结束

相关推荐

Shotcode error on functions

您好,我有一个生成错误的短代码。有人能帮忙吗?add_shortcode(\'do-action\', \'do_action_shortcode\'); function do_action_shortcode($atts, $content = \'\') {   ob_start();   do_action($content);   $out = ob_get_contents();   ob_end_clean();   return $