【问题标题】:Wordpress: Using get_current_user_id() result into my DB table with an HTML formWordpress:将 get_current_user_id() 结果与 HTML 表单一起使用到我的数据库表中
【发布时间】:2017-03-12 09:59:18
【问题描述】:

我有一个插件,其中包含一个将 POST 数据发送到数据库表的 HTML 表单。 除了一件事,它工作得很好。登录用户的 ID 未发送到 DB 表。我认为这可能是我在第 2 步之前的 IF 语句。我已经改变了很多次,但没有任何结果。我所知道的是,这个 if 语句适用于 GET 请求,它实际上确实为您提供了用户的 ID,但显然不适用于 POST 请求。

    function ml_install() {
 // #1 CREATE TABLE
    global $wpdb;
    // creates ml_char in database if not exists
    $table = $wpdb->prefix . "ml_char"; 
    $charset_collate = $wpdb->get_charset_collate();
    $sql = "CREATE TABLE IF NOT EXISTS $table (
        `wp_id` mediumint(9) NOT NULL,
        `char_id` mediumint(9) NOT NULL AUTO_INCREMENT,
        `name` text NOT NULL,
    UNIQUE (`char_id`)
    ) $charset_collate;";
    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
    // starts output buffering
    ob_start();
     if ( is_user_logged_in() ) { 
        $wpid = get_current_id();
    }
// #2 CREATE HTML FORM
    ?>
    <form action="#ml_form" method="post" id="ml_form">
        <input type="hidden" name="wp_id" value="<? echo $wpid; ?>"/>
        <input type="text" name="character_name" id="character_name" />
        <input type="submit" name="submit_form" value="submit" />
    </form>
    <?php
    $html = ob_get_clean();
// #4 INSERT FORM DATA INTO DB
    if ( isset( $_POST["submit_form"] ) && $_POST["character_name"] && $_POST["wp_id"] != "" ) {
        $table = $wpdb->prefix."ml_char";
        $name = strip_tags($_POST["character_name"], "");
        $wpdb->insert( 
            $table, 
            array( 
                'name' => $name,
                'char_id' => $wp_id
            )
        );
        $html = "<p>Greetings <strong>$name</strong>, and welcome to Hyreath.</p>";
    }

【问题讨论】:

    标签: php mysql wordpress phpmyadmin


    【解决方案1】:

    在执行 sql 查询时,您需要在查询参数数组中传递第三个参数 :) 看起来您忘记了 :)

    【讨论】:

    • 我明白你在说什么。但是,实际上只发送了两件事。用户选择的名称和他们的 Wordpress ID。第三个值是插入数据时我的数据库表自动递增的字符 ID。很抱歉我应该早点提到这一点。感谢 webcitron 的反馈!
    【解决方案2】:

    好的,我知道我的问题是什么了。我在数组中拼错了一个列名。网友 Webcitron 为我指明了正确的方向。

    这是允许我从 WPDB 中的 wp_users 表中获取某人当前的 Wordpress ID 并将其插入到我自己的表中的功能代码。因此,现在每当用户访问我的网站并创建新角色时,所有这些角色都将属于该特定用户,而不是不属于任何人。我真的希望这对某人有所帮助。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 2012-06-27
    • 2012-06-07
    • 2017-10-14
    相关资源
    最近更新 更多