php - WordPress:使用 get_current_user_id() 插入到我的 WPDB 表中

标签 php mysql wordpress insert

所以我希望我的插件将当前用户的 ID 插入到我的表“wp_ml_char”中。 问题是,它无法真正插入它;没有任何反应,也没有显示任何错误。该表单仅要求我输入名称,但它还有一个“隐藏”输入类型,可以获取当前存在的任何用户 ID。我无法确定原因到底在哪里,但可能是我制作的“隐藏”输入线。预先感谢任何可以提供帮助的人!

 // Character creation form. Grab the current user's ID.
require_once('/home/mythlarp/public_html/wp-includes/user.php');
$wpid = get_current_user_id();

function html_form_code() {
    echo '<form action="index.php" method="post">';
    echo '<input type="hidden" name="wp_id" value="<?php echo $wpid; ?>" />';
    echo '<p>';
    echo 'Character Name (required) <br />';
    echo '<input type="text" name="ml_char_name" pattern="[a-zA-Z]+" value=""' . ( isset( $_POST["ml_char_name"] ) ? esc_attr( $_POST["ml_char_name"] ) : '' ) . '" size="40" />';
    echo '</p>';
    echo '<p><input type="submit" name="cf-submitted" value="Send"/></p>';
    echo '</form>';
}

// Insert form data.
$wpdb->insert('$table_name', array(
    'ml_char_name' => $_POST['ml_char_name'],
    'wp_id' => $_POST['wp_id'],
));

这是表单的样子。 Character creation form. 这是表格的样子。 enter image description here

最佳答案

尝试像这样编写你的函数

function html_form_code($wpid) {
    echo '<form action="index.php" method="post">';
    echo '<input type="hidden" name="wp_id" value="'.$wpid.'" />';
    echo '<p>';
    echo 'Character Name (required) <br />';
    echo '<input type="text" name="ml_char_name" pattern="[a-zA-Z]+" value=""' . ( isset( $_POST["ml_char_name"] ) ? esc_attr( $_POST["ml_char_name"] ) : '' ) . '" size="40" />';
    echo '</p>';
    echo '<p><input type="submit" name="cf-submitted" value="Send"/></p>';
    echo '</form>';


}

关于php - WordPress:使用 get_current_user_id() 插入到我的 WPDB 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39247459/

相关文章:

php - 无法创建外键约束

PHP setcookie() 函数在 Wordpress 模板文件中不起作用

css - 减少 Wordpress 主题的边距/填充

php - 要 float 的价格字符串

php - 将某人重定向到浏览器定义的搜索引擎

php - Cakephp - 如何使用动态登录名和密码连接到数据库

PHP PDO 基本准备语句

php - 合并多个 PHP 数组

mysql - 本地 WordPress 问题 : Mac MAMP

php - 是否可以为所有用户只打开一个数据库连接?