带有中继器字段问题的UPDATE_FIELD()

时间:2014-02-11 作者:chrisgrace

我对流行的高级自定义字段插件有一个问题,它试图更新/附加重复字段中的行。我正在尝试将一个表中的所有数据迁移到用户meta中,并不断出现以下错误。

可捕获的致命错误:在C:\\wamp\\www\\baca\\WP content\\plugins\\advanced custom fields\\core\\fields\\u函数中,类WP\\u error的对象无法转换为字符串。php

我不确定我做错了什么,因为我正在跟踪http://www.advancedcustomfields.com/resources/functions/update_field/ 但不起作用,我在他们的网站上也没有得到任何支持。下面是我正在使用的代码。有人能看出我做错了什么吗?

function add_members() {
    global $wpdb;
    $results = $wpdb->get_results( "SELECT * FROM members" ); 

    foreach($results as $row) {

        $new_user = array(
            \'user_login\' => $row->CompanyName,
                \'user_pass\' => wp_generate_password ( 12, false ),
                \'user_url\' => $row->Website,
                \'user_email\' => $row->Email,
                \'wp_capabilities\' => \'Subscriber\'
        );

        $pid = wp_insert_user($new_user);

        if($pid) :

        $field_key = "field_52f4fedbcdb79";
        $post_id = $pid;
        $value = get_field($field_key, $post_id);
        $value[] = array(
            "more_contacts_name" => $row->ContactName, 
            "more_contacts_email" => $row->ContactEmail, 
            "acf_fc_layout" => "row_1"
        );
        $value[] = array(
            "more_contacts_name" => $row->ContactName2, 
            "more_contacts_email" => $row->ContactEmail2, 
            "acf_fc_layout" => "row_2"
        );
        update_field( $field_key, $value, $post_id );

      endif;

    }
}
add_action( \'edit_user_profile\', \'add_members\' );

2 个回复
SO网友:chrisgrace

解决了的!!!

$post_id = $pid; 需要是$post_id = "user_{$pid}";

现在看起来很明显,因为身份证可以是任何东西。

克里斯

SO网友:Eckstein

我很惊讶你没有得到ACF的埃利奥特的支持,他通常反应很快。

为什么要尝试更新ACF字段,而不仅仅是更新用户元?信息来自哪个表?

例如,你为什么不能这样做:

$userdata = array(
       \'user_login\' = get_field[\'company_name\']; //if it\'s an ACF field
       \'user_url\' = get_post_meta[$postid, \'website\', true]; //If it\'s just regular meta
    );
wp_insert_user( $userdata );
etc等

结束

相关推荐

带有中继器字段问题的UPDATE_FIELD() - 小码农CODE - 行之有效找到问题解决它

带有中继器字段问题的UPDATE_FIELD()

时间:2014-02-11 作者:chrisgrace

我对流行的高级自定义字段插件有一个问题,它试图更新/附加重复字段中的行。我正在尝试将一个表中的所有数据迁移到用户meta中,并不断出现以下错误。

可捕获的致命错误:在C:\\wamp\\www\\baca\\WP content\\plugins\\advanced custom fields\\core\\fields\\u函数中,类WP\\u error的对象无法转换为字符串。php

我不确定我做错了什么,因为我正在跟踪http://www.advancedcustomfields.com/resources/functions/update_field/ 但不起作用,我在他们的网站上也没有得到任何支持。下面是我正在使用的代码。有人能看出我做错了什么吗?

function add_members() {
    global $wpdb;
    $results = $wpdb->get_results( "SELECT * FROM members" ); 

    foreach($results as $row) {

        $new_user = array(
            \'user_login\' => $row->CompanyName,
                \'user_pass\' => wp_generate_password ( 12, false ),
                \'user_url\' => $row->Website,
                \'user_email\' => $row->Email,
                \'wp_capabilities\' => \'Subscriber\'
        );

        $pid = wp_insert_user($new_user);

        if($pid) :

        $field_key = "field_52f4fedbcdb79";
        $post_id = $pid;
        $value = get_field($field_key, $post_id);
        $value[] = array(
            "more_contacts_name" => $row->ContactName, 
            "more_contacts_email" => $row->ContactEmail, 
            "acf_fc_layout" => "row_1"
        );
        $value[] = array(
            "more_contacts_name" => $row->ContactName2, 
            "more_contacts_email" => $row->ContactEmail2, 
            "acf_fc_layout" => "row_2"
        );
        update_field( $field_key, $value, $post_id );

      endif;

    }
}
add_action( \'edit_user_profile\', \'add_members\' );

2 个回复
SO网友:chrisgrace

解决了的!!!

$post_id = $pid; 需要是$post_id = "user_{$pid}";

现在看起来很明显,因为身份证可以是任何东西。

克里斯

SO网友:Eckstein

我很惊讶你没有得到ACF的埃利奥特的支持,他通常反应很快。

为什么要尝试更新ACF字段,而不仅仅是更新用户元?信息来自哪个表?

例如,你为什么不能这样做:

$userdata = array(
       \'user_login\' = get_field[\'company_name\']; //if it\'s an ACF field
       \'user_url\' = get_post_meta[$postid, \'website\', true]; //If it\'s just regular meta
    );
wp_insert_user( $userdata );
etc等

相关推荐