admin管理员组

文章数量:1022405

I'm trying to add custom field created on comment form to custom database.

But my solutions not working. How to change/improve it?

I add custom fields this way:

function add_interests( $fields ) {

    $fields[ 'interest_1' ] =
        '<p class="comm-chbox">
        <input type="checkbox" name="interest_1" id="interest_1">
        <label for="interest_1">Are you interested in ...?</label>
        </p>';


    $fields[ 'interest_2' ] =
        '<p class="comm-chbox">
        <input type="checkbox" name="interest_2" id="interest_2">
        <label for="interest_2">Are you interested in ...?</label>
        </p>';

    return $fields;
}

add_filter( 'comment_form_default_fields', 'add_interests' );

I'm trying to use comment_post hook.

function save_interests() {

    global $wp;

    $email = $_POST['email'];
    $page = home_url( $wp->request );
        if ( !empty($_POST(interest_1)) && !empty($_POST(interest_2)) ) {
            $interest_1 = true;
            $interest_2 = true;
            insert_interests_to_db ( $email, $page, $interest_1, $interest_2 );
        } elseif ( !empty($_POST(interest_1)) && empty($_POST(interest_2)) ) {
            $interest_1 = true;
            $interest_2 = false;
            insert_interests_to_db ( $email, $page, $interest_1, $interest_2 );
        } elseif ( empty($_POST(interest_1)) && !empty($_POST(interest_2)) ) {
            $interest_1 = false;
            $interest_2 = true;
            insert_interests_to_db ( $email, $page, $interest_1, $interest_2 );
        }
}

And my function for insert data to database:

function insert_interests_to_db ( $email, $page, $interest_1, $interest_2 ) {

    global $wpdb;
    $table_name = $wpdb->prefix . 'interest_types_db';
    $data = array(
        'email' => $email,
        'page' => $page,
        'interest_1' => $interest_1,
        'interest_2' => $interest_2,
    );
    $format = array( '%s', '%s', '%d', '%d' );
    $wpdb->insert( $table_name, $data, $format );

}

I get an error:

Fatal error: Uncaught Error: Function name must be a string...

If I use isset instead of empty:

Cannot use isset() on the result of an expression...

I'm trying to add custom field created on comment form to custom database.

But my solutions not working. How to change/improve it?

I add custom fields this way:

function add_interests( $fields ) {

    $fields[ 'interest_1' ] =
        '<p class="comm-chbox">
        <input type="checkbox" name="interest_1" id="interest_1">
        <label for="interest_1">Are you interested in ...?</label>
        </p>';


    $fields[ 'interest_2' ] =
        '<p class="comm-chbox">
        <input type="checkbox" name="interest_2" id="interest_2">
        <label for="interest_2">Are you interested in ...?</label>
        </p>';

    return $fields;
}

add_filter( 'comment_form_default_fields', 'add_interests' );

I'm trying to use comment_post hook.

function save_interests() {

    global $wp;

    $email = $_POST['email'];
    $page = home_url( $wp->request );
        if ( !empty($_POST(interest_1)) && !empty($_POST(interest_2)) ) {
            $interest_1 = true;
            $interest_2 = true;
            insert_interests_to_db ( $email, $page, $interest_1, $interest_2 );
        } elseif ( !empty($_POST(interest_1)) && empty($_POST(interest_2)) ) {
            $interest_1 = true;
            $interest_2 = false;
            insert_interests_to_db ( $email, $page, $interest_1, $interest_2 );
        } elseif ( empty($_POST(interest_1)) && !empty($_POST(interest_2)) ) {
            $interest_1 = false;
            $interest_2 = true;
            insert_interests_to_db ( $email, $page, $interest_1, $interest_2 );
        }
}

And my function for insert data to database:

function insert_interests_to_db ( $email, $page, $interest_1, $interest_2 ) {

    global $wpdb;
    $table_name = $wpdb->prefix . 'interest_types_db';
    $data = array(
        'email' => $email,
        'page' => $page,
        'interest_1' => $interest_1,
        'interest_2' => $interest_2,
    );
    $format = array( '%s', '%s', '%d', '%d' );
    $wpdb->insert( $table_name, $data, $format );

}

I get an error:

Fatal error: Uncaught Error: Function name must be a string...

If I use isset instead of empty:

Cannot use isset() on the result of an expression...

本文标签: Store comment form custom field in custom database