How to import XML data for ACF Type: Relationship

Open
ImportWP Pro - WordPress XML & CSV Importer ImportWP Pro - WordPress XML & CSV Importer December 01, 2019
Login to reply
Nicholas Manske
1 day ago

Excellent! This is working. Thanks so much!! No worries about deleting
Liferay, I'll take care of it.

I'll make sure to write a great review of your product. I really appreciate
it.

James Collings Support Agent
1 day ago

Hi Nicholas,

I have added a new file into your sites mu-plugins folder called: iwp-bidirectional-acf-relationship-field.php , this is to handle the custom bidirectional relationship updating for that importer.

I had some difficulty as you had modified it slightly, and in doing so i accidently wiped the employer text field for "Liferay", it currentlys says ["0","4049"]. this was due to me not knowing that the relationship field on Employers Profile was not called employer like it is on the Job Adder post type.

I would recommend trying it on a limited number of records / backing up the database to make sure it is fully working before doing a full import.

James

James Collings Support Agent
2 days ago

Thanks for those details, i will update you with what i find.

James

Nicholas Manske commented privately
James Collings Support Agent
2 days ago

Hi Nicholas,

I have been racking my brain trying to figure out why the relationship field is working locally in a test environment using similar relationships between post types, but not on your website.

The only thing that i can think of is you have anything that alters the query, looking at your theme the only function i can see that does that is in your themes functions file called: fdds_cpt_search which is effecting all the search queries on your admin pages, e.g. searching on the Employers Profile or Job Adder section always returns nothing. Is this meant to happen or are you missing a !is_admin()  in the if statement?

James

Nicholas Manske
2 days ago

Hey James: I made that change to functions.php:270, and then ran the importer. Unfortunately, it still did not set the Employer value to "Liferay." 

One improvement though: I can now manually set it to Liferay, after the import, and save it. Before, this would trigger an error message. Previously, I could only do this for Jobs not imported through ImportWP.

James Collings Support Agent
2 days ago

This error is caused by this line in your themes functions.php:270 (bacause no initial value has been imported and it was expecting a serialized array)

$value2 = get_field($field_name, $post_id2, false);

change it to

$value2 = (array)get_field($field_name, $post_id2, false);

Nicholas Manske commented privately
Nicholas Manske
3 days ago

Sure! I’ll try replacing it within the hour. Will let you know. Thanks for
your help!!

James Collings Support Agent commented privately
Nicholas Manske
3 days ago

Liferay indeed exists already as an Employer: https://www.alariss.com/wp-admin/post.php?post=3610&action=edit

James Collings Support Agent
3 days ago

Thanks for sending over those details, i am now able to login.

I have just looked at the 3 "Job Adder".

It appears that they all have the employer "Liferay", which is a link to the employer profiles post type,  this employer doesnt exist, this needs to exist for it to be linked in the relationship field.

James

Nicholas Manske commented privately
James Collings Support Agent commented privately
Nicholas Manske commented privately
James Collings Support Agent
3 days ago

By Any chance are you able to give my temporary access to your site so i can have a look at your importer settings, acf settings, the data that is trying to be imported, and the data thats trying to be linked.

James

Nicholas Manske
3 days ago

I don't see a value here in the edit screen of the object. See attached. Is there a different way to view all of data for this object?

James Collings Support Agent
3 days ago

Hi,

If you run the importer, then go into the edit screen of the object that was just imported, is there a value in your relationship field matching that of the import (ignoring the bidirectional part)?

James

Nicholas Manske
3 days ago

Hey James: Thanks for your response. I just tried the updated version again, but it did not work. Here is the error message that I receive, if I try to display the Employer Value in my html: "Warning: Invalid argument supplied for foreach() in /srv/disk1/3053074/www/alariss.com/wp-content/themes/alariss-astra-child/search-filter/results.php on line 65"


On the Custom Post page, it shows the Employer value as blank. However, if I then try to save the correct value, it shows the below error: 

Warning: in_array() expects parameter 2 to be array, string given in /srv/disk1/3053074/www/alariss.com/wp-content/themes/alariss-astra-child/functions.php on line 281

Fatal error: Uncaught Error: [] operator not supported for strings in /srv/disk1/3053074/www/alariss.com/wp-content/themes/alariss-astra-child/functions.php:286 Stack trace: #0 /srv/disk1/3053074/www/alariss.com/wp-includes/class-wp-hook.php(288): bidirectional_acf_update_value_rel(Array, '3610', Array) #1 /srv/disk1/3053074/www/alariss.com/wp-includes/plugin.php(251): WP_Hook->apply_filters(Array, Array) #2 /srv/disk1/3053074/www/alariss.com/wp-content/plugins/advanced-custom-fields/includes/acf-hook-functions.php(101): apply_filters_ref_array('acf/update_valu...', Array) #3 /srv/disk1/3053074/www/alariss.com/wp-includes/class-wp-hook.php(286): _acf_apply_hook_variations(Array, '3610', Array, Array) #4 /srv/disk1/3053074/www/alariss.com/wp-includes/plugin.php(208): WP_Hook->apply_filters(Array, Array) #5 /srv/disk1/3053074/www/alariss.com/wp-content/plugins/advanced-custom-fields/includes/acf-value-functions.php(185): apply_filters('acf/update_valu...', Array, '3610', Array, Array) #6 /srv/disk1/3053074/www/alariss.com/w in /srv/disk1/3053074/www/alariss.com/wp-content/themes/alariss-astra-child/functions.php on line 286

The site is experiencing technical difficulties. Please check your site admin email inbox for instructions.

James Collings Support Agent commented privately
Nicholas Manske
3 days ago

Set up: 


Also, to link the two fields with an ACF relationship, I'm using the ACF bidirectional code (https://www.advancedcustomfields.com/resources/bidirectional-relationships/) , which saves the data as an array of Post IDs.

Nicholas Manske
3 days ago

James: Thanks for the quick reply! 

Hm, unfortunately that didn't work.  I'm importing a Job Opening with the Employer field (Type: ACF Relationship) set as "Liferay." Unfortunately, after the import, it is still not matching the job to the Employer Post named "Liferay." Any ideas? 

James Collings Support Agent commented privately
Nicholas Manske
4 days ago

I'd like to import data for an ACF Relationship Field.

The prebuilt choices for Field Types are only "Text" or "Attachment." Is there a custom way to import data for ACF Relationship?

Thanks!