WP Insert创建多个帖子

时间:2018-03-12 17:09:02

标签: php mysql wordpress phpmyadmin

我正在尝试将数据库迁移到不同参数中的另一个数据库,旧数据库没有任何框架,新数据库是wordpress数据库。好吧一切正常,但当我触发我的代码时,他创建了多个帖子和postmetas。有什么问题?

代码如下:

add_action('after_setup_theme', 'migracao');

function migracao()

{

$mysqli = new mysqli( 'localhost', 'drifttestecom_socialvida', 'a1b2c3d4', 'drifttestecom_socialvida_db2' ); 

//Tipo de convenios
$sql = 'SELECT id_tipo_convenio, nm_tipo_convenio, fl_ativo FROM tipo_convenio';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
    $titulo = sanitizeString( $dados['nm_tipo_convenio'] );
    $status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );

    $args = array(
        'post_title'  => $titulo,
        'post_status' => 'publish',
        'post_type'   => 'tipo-de-convenio'
    );

    $newPostID = wp_insert_post( $args );
    update_post_meta( $newPostID, 'status', $status );
    update_post_meta( $newPostID, 'codigo-tipo-convenio', $dados['id_tipo_convenio'] );
endwhile;

//Rede de convenios
$sql = 'SELECT id_rede, nm_rede, fl_ativo FROM rede_convenio';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
    $titulo = sanitizeString( $dados['nm_rede'] );
    $status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );

    $args = array(
        'post_title'  => $titulo,
        'post_status' => 'publish',
        'post_type'   => 'rede-conveniada'
    );

    $newPostID = wp_insert_post( $args );
    update_post_meta( $newPostID, 'status', $status );
    update_post_meta( $newPostID, 'codigo-rede', $dados['id_rede'] );
endwhile;

//Especialidade
$sql = 'SELECT nm_especialidade, fl_ativo FROM especialidade';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
    $titulo = sanitizeString( $dados['nm_especialidade'] );
    $status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );

    $args = array(
        'post_title'  => $titulo,
        'post_status' => 'publish',
        'post_type'   => 'especialidade'
    );

    $newPostID = wp_insert_post( $args );
    update_post_meta( $newPostID, 'status', $status );
endwhile;

//Usuários
$sql = 'SELECT nm_usuario, ds_login, ds_email, tp_usuario FROM usuario LIMIT 1';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
    $nomeCompletoUsuario = ucwords( $dados['nm_usuario'] );
    $fimNome = strpos( $nomeCompletoUsuario, ' ');
    $nome = substr( $nomeCompletoUsuario, 0, $fimNome );
    $sobrenome = substr( $nomeCompletoUsuario, $fimNome );

    $login = $dados['ds_login'];
    $email = $dados['ds_email'];
    $rules = ( $dados['tp_usuario'] === '1' ? 'a:1:{s:13:"administrator";b:1;}' : 'a:1:{s:10:"subscriber";b:1;}' );
    $level = ( $dados['tp_usuario'] === '1' ? '10' : '0' );

    $random_password = wp_generate_password( $length=12, $include_standard_special_chars=false );
    $user_id = wp_create_user( $login, $random_password, $email );
    update_user_meta( $user_id, 'first_name', $nome );
    update_user_meta( $user_id, 'last_name', $sobrenome );
    update_user_meta( $user_id, 'dft_capabilities', $rules );
    update_user_meta( $user_id, 'dft_user_level', $level );
endwhile;

//Clinica
$sql = 'SELECT id_clinica, nm_clinica, fl_ativo, id_usuario FROM clinica_convenio';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
    $titulo = sanitizeString( $dados['nm_clinica'] );
    $status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );

    $sql2 = 'SELECT id_usuario, ds_login FROM usuario WHERE id_usuario = '.$dados['id_usuario'];
    $query2 = $mysqli->query( $sql2 );
    $usuario = $query2->fetch_array();
    $usuarioLogin = $usuario['ds_login'];

    global $wpdb;
    $userID = $wpdb->get_row('SELECT id, user_login FROM dft_users WHERE user_login = "admindrift"');

    if ( $userID ) {
        $usuarioID = $userID->id;
        $usuarioNome = update_user_meta( $usuarioID, 'first_name', true ).' '.update_user_meta( $usuarioID, 'last_name', true );
    } else {
        $usuarioID = '';
        $usuarioNome = '';
    }

    $args = array(
        'post_title'  => $titulo,
        'post_status' => 'publish',
        'post_type'   => 'clinica'
    );

    $newPostID = wp_insert_post( $args );
    update_post_meta( $newPostID, 'status', $status );
    update_post_meta( $newPostID, 'id-usuario-clinica', $usuarioID );
    update_post_meta( $newPostID, 'usuario-clinica', $usuarioNome );
    update_post_meta( $newPostID, 'codigo-clinica', $dados['id_clinica'] );
endwhile;

//Convenio médico
$sql = 'SELECT id_clinica, nm_convenio, ds_registro_classe, ds_endereco, ds_complemento, nr_cep, ds_bairro, id_cidade, nr_ddd, nr_telefone, fl_ativo, nr_latitude, nr_longitude, fl_emite_guia FROM convenio_medico LIMIT 5';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
    $titulo = ucwords( strtolower( $dados['nm_convenio'] ) );
    $registroClasse = $dados['ds_registro_classe'];
    $endereco = utf8_encode( $dados['ds_endereco'] );
    $complemento = utf8_encode( $dados['ds_complemento'] );
    $cep = $dados['nr_cep'];
    $bairro = utf8_encode( $dados['ds_bairro'] );
    $telefone = '('.$dados['nr_ddd'].') '.$dados['nr_telefone'];
    $status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );
    $latitude = $dados['nr_latitude'];
    $longitude = $dados['nr_longitude'];
    $guia = ( $dados['fl_emite_guia'] === '1' ? 'ativo' : 'inativo' );
    $idClinica = $dados['id_clinica'];
    $idCidade = $dados['id_cidade'];

    $sqlCidade = 'SELECT nm_cidade, id_estado FROM cidade WHERE id_cidade = '.$id_cidade;
    $queryCidade = $mysqli->query( $sqlCidade );
    $cidade = $queryCidade->fetch_array();

    $nomeCidade = $cidade['nm_cidade'];
    $idEstado = $cidade['id_estado'];

    $sqlEstado = 'SELECT nm_estado FROM estado WHERE id_estado ='.$idEstado;
    $queryEstado = $mysqli->query( $sqlEstado );
    $estado = $queryEstado->fetch_array();
    $nomeEstado = $estado['nm_estado'];

    global $wpdb;
    $clinica = $wpdb->get_row('SELECT dft_posts.id 
                              FROM dft_posts 
                              INNER JOIN dft_postmeta 
                              WHERE dft_posts.id = dft_postmeta.post_id 
                              AND dft_postmeta.meta_key = "codigo-clinica"
                              AND dft_postmeta.meta_value = '.$idClinica);

    $args = array(
        'post_title'  => $titulo,
        'post_status' => 'publish',
        'post_type'   => 'convenio-medico'
    );

    $newPostID = wp_insert_post( $args );
    update_post_meta( $newPostID, 'status', $status );
    update_post_meta( $newPostID, 'registro', $registroClasse );
    update_post_meta( $newPostID, 'endereco', $endereco );
    update_post_meta( $newPostID, 'complemento', $complemento );
    update_post_meta( $newPostID, 'cep', $cep );
    update_post_meta( $newPostID, 'bairro', $bairro );
    update_post_meta( $newPostID, 'telefone', $telefone );
    update_post_meta( $newPostID, 'latitude', $latitude );
    update_post_meta( $newPostID, 'longitude', $longitude );
    update_post_meta( $newPostID, 'emitir-guia', $guia );
    update_post_meta( $newPostID, 'id-clinica', ( $clinica->id ? $clinica->id : '' ) );
    update_post_meta( $newPostID, 'estado', $nomeEstado );
    update_post_meta( $newPostID, 'cidade', $nomeCidade );
    update_post_meta( $newPostID, 'endereco-completo', $endereco.' - '.$bairro.', '.$nomeCidade.' - '.$nomeEstado.', '.$cep.', Brasil' );
endwhile;

//Convenio Comercial
$sql = 'SELECT id_rede, id_tipo_convenio, nm_loja, ds_beneficio, ds_observacao, ds_endereco, ds_complemento, nr_cep, ds_bairro, id_cidade, nr_ddd, nr_telefone, fl_ativo, nr_latitude, nr_longitude, fl_emite_guia FROM convenio_comercio LIMIT 5';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
    $titulo = ucwords( strtolower( $dados['nm_convenio'] ) );
    $beneficio = utf8_encode( $dados['ds_beneficio'] );
    $observacao = utf8_encode( $dados['ds_observacao'] );
    $endereco = utf8_encode( $dados['ds_endereco'] );
    $complemento = utf8_encode( $dados['ds_complemento'] );
    $cep = $dados['nr_cep'];
    $bairro = utf8_encode( $dados['ds_bairro'] );
    $telefone = '('.$dados['nr_ddd'].') '.$dados['nr_telefone'];
    $status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );
    $latitude = $dados['nr_latitude'];
    $longitude = $dados['nr_longitude'];
    $guia = ( $dados['fl_emite_guia'] === '1' ? 'ativo' : 'inativo' );
    $idRede= $dados['id_rede'];
    $idTipoConvenio = $dados['id_tipo_convenio'];
    $idCidade = $dados['id_cidade'];

    $sqlCidade = 'SELECT nm_cidade, id_estado FROM cidade WHERE id_cidade = '.$id_cidade;
    $queryCidade = $mysqli->query( $sqlCidade );
    $cidade = $queryCidade->fetch_array();

    $nomeCidade = $cidade['nm_cidade'];
    $idEstado = $cidade['id_estado'];

    $sqlEstado = 'SELECT nm_estado FROM estado WHERE id_estado ='.$idEstado;
    $queryEstado = $mysqli->query( $sqlEstado );
    $estado = $queryEstado->fetch_array();
    $nomeEstado = $estado['nm_estado'];

    global $wpdb;
    $rede = $wpdb->get_row('SELECT dft_posts.id 
                              FROM dft_posts 
                              INNER JOIN dft_postmeta 
                              WHERE dft_posts.id = dft_postmeta.post_id 
                              AND dft_postmeta.meta_key = "codigo-rede"
                              AND dft_postmeta.meta_value = '.$idRede);

    $tipoConvenio = $wpdb->get_row('SELECT dft_posts.id 
                              FROM dft_posts 
                              INNER JOIN dft_postmeta 
                              WHERE dft_posts.id = dft_postmeta.post_id 
                              AND dft_postmeta.meta_key = "codigo-tipo-convenio"
                              AND dft_postmeta.meta_value = '.$idTipoConvenio);

    $args = array(
        'post_title'  => $titulo,
        'post_status' => 'publish',
        'post_type'   => 'convenio-medico'
    );

    $newPostID = wp_insert_post( $args );
    update_post_meta( $newPostID, 'status', $status );
    update_post_meta( $newPostID, 'beneficio', $beneficio );
    update_post_meta( $newPostID, 'observacao', $observacao );
    update_post_meta( $newPostID, 'endereco', $endereco );
    update_post_meta( $newPostID, 'complemento', $complemento );
    update_post_meta( $newPostID, 'cep', $cep );
    update_post_meta( $newPostID, 'bairro', $bairro );
    update_post_meta( $newPostID, 'telefone', $telefone );
    update_post_meta( $newPostID, 'latitude', $latitude );
    update_post_meta( $newPostID, 'longitude', $longitude );
    update_post_meta( $newPostID, 'emitir-guia', $guia );
    update_post_meta( $newPostID, 'id-rede', ( $rede->id ? $rede->id : '' ) );
    update_post_meta( $newPostID, 'id-tipo_convenio', ( $tipoConvenio->id ? $tipoConvenio->id : '' ) );
    update_post_meta( $newPostID, 'estado', $nomeEstado );
    update_post_meta( $newPostID, 'cidade', $nomeCidade );
    update_post_meta( $newPostID, 'endereco-completo', $endereco.' - '.$bairro.', '.$nomeCidade.' - '.$nomeEstado.', '.$cep.', Brasil' );
endwhile;

}

0 个答案:

没有答案