Last active
June 6, 2023 17:47
-
-
Save SamuelHadsall/1e170da08ee727b8bb1fe30834f25860 to your computer and use it in GitHub Desktop.
Imports csv and maps to acf fields
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| if (!function_exists('acf_add_local_field_group')) { | |
| return; | |
| } | |
| acf_add_local_field_group([ | |
| 'key' => 'demographics_5b73377adf04f', | |
| 'title' => 'Demographics', | |
| 'fields' => [ | |
| [ | |
| 'key' => 'group_demographics_5b7337960d672', | |
| 'label' => 'Primary Reason for Moving', | |
| 'name' => 'reason', | |
| 'type' => 'group', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '30', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'layout' => 'row', | |
| 'sub_fields' => [ | |
| [ | |
| 'key' => 'field_5b73381f0d673', | |
| 'label' => 'Retirement (In)', | |
| 'name' => 'retirement_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b77211a346a5', | |
| 'label' => 'Retirement (Out)', | |
| 'name' => 'retirement_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b7338600d674', | |
| 'label' => 'Health/Personal (In)', | |
| 'name' => 'health_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b7725b8346a6', | |
| 'label' => 'Health/Personal (Out)', | |
| 'name' => 'health_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b7338700d675', | |
| 'label' => 'Family (In)', | |
| 'name' => 'family_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b7725d7346a7', | |
| 'label' => 'Family (Out)', | |
| 'name' => 'family_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b73387c0d676', | |
| 'label' => 'Lifestyletest (In)', | |
| 'name' => 'Lifestyletest_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b77262cfa94e', | |
| 'label' => 'Lifestyletest (Out)', | |
| 'name' => 'Lifestyletest_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b73388e0d677', | |
| 'label' => 'Job (In)', | |
| 'name' => 'job_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772674fa94f', | |
| 'label' => 'Job (Out)', | |
| 'name' => 'job_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ],[ | |
| 'key' => 'field_618e7779abd6d', | |
| 'label' => 'Cost of Living (In)', | |
| 'name' => 'cost_of_living_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ],[ | |
| 'key' => 'field_618e79b748904', | |
| 'label' => 'Cost of Living (Out)', | |
| 'name' => 'cost_of_living_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| ], | |
| ], | |
| [ | |
| 'key' => 'group_demographics_5b7726bdf3e56', | |
| 'label' => 'Age Ranges', | |
| 'name' => 'age', | |
| 'type' => 'group', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '30', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'layout' => 'row', | |
| 'sub_fields' => [ | |
| [ | |
| 'key' => 'field_5b772a6504d19', | |
| 'label' => '<18 to 34 (In)', | |
| 'name' => '18_to_34_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772c8808eb2', | |
| 'label' => '<18 to 34 (Out)', | |
| 'name' => '18_to_34_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772ca208eb3', | |
| 'label' => '35 to 44 (In)', | |
| 'name' => '35_to_44_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772cc508eb4', | |
| 'label' => '35 to 44 (Out)', | |
| 'name' => '35_to_44_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772ccf08eb5', | |
| 'label' => '45 to 54 (In)', | |
| 'name' => '45_to_54_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772ce708eb6', | |
| 'label' => '45 to 54 (Out)', | |
| 'name' => '45_to_54_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772d3da2fb8', | |
| 'label' => '55 to 64 (In)', | |
| 'name' => '55_to_64_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772d55a2fb9', | |
| 'label' => '55 to 64 (Out)', | |
| 'name' => '55_to_64_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772d60a2fba', | |
| 'label' => '65 or Older (In)', | |
| 'name' => '65_or_older_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772d83a2fbb', | |
| 'label' => '65 or Older (Out)', | |
| 'name' => '65_or_older_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| ], | |
| ], | |
| [ | |
| 'key' => 'group_demographics_5b772daf7b3b9', | |
| 'label' => 'Income', | |
| 'name' => 'income', | |
| 'type' => 'group', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '40', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'layout' => 'row', | |
| 'sub_fields' => [ | |
| [ | |
| 'key' => 'field_5b772db07b3ba', | |
| 'label' => '$0 to $49,999 (In)', | |
| 'name' => '0_49_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772db07b3bb', | |
| 'label' => '$0 to $49,999 (Out)', | |
| 'name' => '0_49_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772db07b3bc', | |
| 'label' => '$50,000 to $74,999 (In)', | |
| 'name' => '50_74_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772db07b3bd', | |
| 'label' => '$50,000 to $74,999 (Out)', | |
| 'name' => '50_74_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772db07b3be', | |
| 'label' => '$75,000 to $99,999 (In)', | |
| 'name' => '75_99_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772db07b3bf', | |
| 'label' => '$75,000 to $99,999 (Out)', | |
| 'name' => '75_99_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772db07b3c0', | |
| 'label' => '$100,000 to $149,999 (In)', | |
| 'name' => '100_149_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772db07b3c1', | |
| 'label' => '$100,000 to $149,999 (Out)', | |
| 'name' => '100_149_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772db07b3c2', | |
| 'label' => '$150,000 or More (In)', | |
| 'name' => '150_more_in', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| [ | |
| 'key' => 'field_5b772db07b3c3', | |
| 'label' => '$150,000 or More (Out)', | |
| 'name' => '150_more_out', | |
| 'type' => 'number', | |
| 'instructions' => '', | |
| 'required' => 0, | |
| 'conditional_logic' => 0, | |
| 'wrapper' => [ | |
| 'width' => '', | |
| 'class' => '', | |
| 'id' => '', | |
| ], | |
| 'default_value' => '', | |
| 'placeholder' => '', | |
| 'prepend' => '', | |
| 'append' => '%', | |
| 'min' => 0, | |
| 'max' => 100, | |
| 'step' => '.01', | |
| ], | |
| ], | |
| ], | |
| ], | |
| 'location' => [ | |
| [ | |
| [ | |
| 'param' => 'post_type', | |
| 'operator' => '==', | |
| 'value' => 'location', | |
| ], | |
| [ | |
| 'param' => 'post_template', | |
| 'operator' => '!=', | |
| 'value' => 'template-location-year.php', | |
| ], | |
| ], | |
| ], | |
| 'menu_order' => 0, | |
| 'position' => 'normal', | |
| 'style' => 'default', | |
| 'label_placement' => 'left', | |
| 'instruction_placement' => 'label', | |
| 'hide_on_screen' => '', | |
| 'active' => 1, | |
| 'description' => '', | |
| ]); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public function csv_importer_handle_import() { | |
| // Check if the form is submitted and the user has the necessary capabilities | |
| if ( | |
| isset($_POST['csv_importer_nonce']) && | |
| wp_verify_nonce($_POST['csv_importer_nonce'], 'csv_importer') && | |
| current_user_can('manage_options') && | |
| isset($_FILES['csv_file']['tmp_name']) | |
| ) { | |
| $csv_file = $_FILES['csv_file']['tmp_name']; | |
| $csv = array(); | |
| $i = 0; | |
| // Load the CSV file | |
| if (($handle = fopen($csv_file, 'r')) !== FALSE) { | |
| // Get the custom post type and ACF field keys | |
| $post_type = 'location'; | |
| $acf_fields = array( | |
| 'field_5b7af4746e30f' => 'state', | |
| 'group_demographics_5b7337960d672' => array( | |
| array( | |
| 'field_5b73381f0d673' => 'reason_retirement_in', | |
| 'field_5b77211a346a5' => 'reason_retirement_out', | |
| 'field_5b7338600d674' => 'reason_health_in', | |
| 'field_5b7725b8346a6' => 'reason_health_out', | |
| 'field_5b7338700d675' => 'reason_family_in', | |
| 'field_5b7725d7346a7' => 'reason_family_out', | |
| 'field_5b73387c0d676' => 'reason_lifestyle_in', | |
| 'field_5b77262cfa94e' => 'reason_lifestyle_out', | |
| 'field_5b73388e0d677' => 'reason_job_in', | |
| 'field_5b772674fa94f' => 'reason_job_out', | |
| 'field_618e7779abd6d' => 'reason_cost_of_living_in', | |
| 'field_618e79b748904' => 'reason_cost_of_living_out', | |
| ) | |
| ), | |
| 'group_demographics_5b7726bdf3e56' => array( | |
| array ( | |
| 'field_5b772a6504d19' => 'age_18_to_34_in', | |
| 'field_5b772c8808eb2' => 'age_18_to_34_out', | |
| 'field_5b772ca208eb3' => 'age_35_to_44_in', | |
| 'field_5b772cc508eb4' => 'age_35_to_44_out', | |
| 'field_5b772ccf08eb5' => 'age_45_to_54_in', | |
| 'field_5b772ce708eb6' => 'age_45_to_54_out', | |
| 'field_5b772d3da2fb8' => 'age_55_to_64_in', | |
| 'field_5b772d55a2fb9' => 'age_55_to_64_out', | |
| 'field_5b772d60a2fba' => 'age_65_or_older_in', | |
| 'field_5b772d83a2fbb' => 'age_65_or_older_out', | |
| ) | |
| ), | |
| 'group_demographics_5b772daf7b3b9' => array( | |
| array( | |
| 'field_5b772db07b3ba' => 'income_0_49_in', | |
| 'field_5b772db07b3bb' => 'income_0_49_out', | |
| 'field_5b772db07b3bc' => 'income_50_74_in', | |
| 'field_5b772db07b3bd' => 'income_50_74_out', | |
| 'field_5b772db07b3be' => 'income_75_99_in', | |
| 'field_5b772db07b3bf' => 'income_75_99_out', | |
| 'field_5b772db07b3c0' => 'income_100_149_in', | |
| 'field_5b772db07b3c1' => 'income_100_149_out', | |
| 'field_5b772db07b3c2' => 'income_150_more_in', | |
| 'field_5b772db07b3c3' => 'income_150_more_out' | |
| ) | |
| ), | |
| // Add more fields as needed | |
| ); | |
| // Headrow | |
| $columns = fgetcsv($handle, 4096, ',', '"'); | |
| // Loop through each row in the CSV file | |
| while (($row = fgetcsv($handle, 4096, ',')) !== FALSE) { | |
| // This is a great trick, to get an associative row by combining the headrow with the content-rows. | |
| $csv[$i] = array_combine($columns, $row); | |
| $title = $csv[$i]['state']; | |
| $post_data = array( | |
| 'post_title' => $title, | |
| 'post_type' => $post_type, | |
| 'post_status' => 'publish', | |
| // Set any other post data as needed | |
| ); | |
| // Create the custom post | |
| $post_id = wp_insert_post($post_data); | |
| // Map the CSV data to ACF fields | |
| foreach ($acf_fields as $acf_group_key => $acf_group_fields) { | |
| foreach ($acf_group_fields as $acf_sub_field_key => $fields) { | |
| foreach ($fields as $acf_field_key => $csv_column) { | |
| if (isset($csv[$i][$csv_column])) { | |
| update_field($acf_group_key, array( $acf_field_key => $csv[$i][$csv_column] ), $post_id); | |
| } | |
| } | |
| } | |
| } | |
| $i++; | |
| } | |
| fclose($handle); | |
| } | |
| // Redirect back to the plugin page after import | |
| wp_safe_redirect(admin_url('tools.php?page=uvl-migration-map')); | |
| exit; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment