Wordpress update_user_meta无效

时间:2016-02-27 23:26:39

标签: php html wordpress forms

**已解决** 我没有在表单处理器中要求Wordpress。在顶部添加此行修复它(总是最简单的,对吧!?): require_once( explode( "wp-content" , __FILE__ )[0] . "wp-load.php" );

我已经为客户的网站创建了自定义前端配置文件,并且我为其他用户添加了一种方式来收藏该配置文件。 (请不要像BuddyPress或其他插件那样提出建议 - 我已经试过了十几个,而且没有一个具备我需要的所有功能。谢谢。):)

无论如何....这里是概述。我希望它清楚。我们假设USER 1正在查看USER 10的个人资料。

  • 在数据库中,用户1有一个名为favorite_10的字段,可以设置为" yes"或"不" (或null)
  • 当有人点击"收藏夹"按钮在另一个用户的个人资料中,它将运行一个简单的脚本来更改"是"到"不"反之亦然

那就是它。我认为这是一个非常好的解决方案,但表单处理脚本在update_user_meta行处断开。

我们走了。

foreach($sitterlist as $sitteritem) {
    $code = 'favorite_'.(esc_html($sitteritem->ID));
    $key = esc_html($sitteritem->ID);
    $favorite[$key] = get_the_author_meta( $code, $currentuser);
}

$is_favorite=null;

if ($favorite[$usertosearch]=='yes') {
    $is_favorite = true;
} else {
    $is_favorite = false;
}

?>

<form method="post" action="updatefavorite.php">    
    <input type="hidden" value="<?php echo $usertosearch; ?>" name="usertosearch" id="usertosearch">
    <input type="hidden" value="<?php echo $currentuser; ?>" name="currentuser" id="currentuser">
    <input type="hidden" value="<?php echo $is_favorite; ?>" name="is_favorite" id="is_favorite">

    <button type="submit" id="favoritebutton" name="favoritebutton"><span>Favorite</span></button>

</form>

这里是updatefavorite.php

<?php 

if(isset($_POST['favoritebutton'])) {
    $currentuserid = $_POST['currentuser'];
    $currentprofileid = $_POST['usertosearch'];
    $currentfavorite = $_POST['is_favorite'];
    $code = 'favorite_'.$currentprofileid;

    if ($currentfavorite) {
        $currentfavorite = 'no';
    } else {
        $currentfavorite = 'yes';
    }

    update_user_meta($currentuserid,$code,$currentfavorite);
}   

header('Location: ' . $_SERVER['HTTP_REFERER']);

?>

经过大量的测试和调试,我发现它在update_user_meta时突然崩溃......但我不知道为什么。

谢谢!

1 个答案:

答案 0 :(得分:0)

**已解决**我没有在表单处理器中要求Wordpress。在顶部添加此行修复它(总是最简单的,对吧!?):require_once( explode( "wp-content" , __FILE__ )[0] . "wp-load.php" );