Get values from specific multidimensional array - php

I have multiple arrays:
$meta_boxes[] = array(
'id' => 'measurements',
'title' => 'Measurements',
'fields' => array(
array(
'name' => 'Length',
'id' => 'length',
'type' => 'text',
'std' => ''
),
array(
'name' => 'Manufacturer Length',
'id' => 'manufacturer_length',
'type' => 'text',
'std' => ''
)
)
);
$meta_boxes[] = array(
'id' => 'colors',
'title' => 'Colors',
'fields' => array(
array(
'name' => 'exterior',
'id' => 'exterior',
'type' => 'text',
'std' => ''
etc...
How can I get for example, the value of the name element from fields array from $meta_boxes[] array with id = measurements?

Try something like this:
foreach ($meta_boxes as $meta_box) {
if($meta_box['id'] !== 'measurements') {
continue;
}
$output = $meta_box['fields'];
break;
}

Related

update_post_meta() save custom multicheck box on database but it doesn't show on front end

I have two csv databases, I already migrate de patients database to wordpress but now I need to migrate a services database, each patient can have 1 or more services. First I compare both csv databases and add the data if the Name and Last Name are the same. Everything works good, the data is in the wordpress database because I can print it, but the multicheck box doesn't show the saved data:
And another problem is that I can't click update because on the front end there is no checkbox checked so the custom post type updates the database with nothing checked.
Here is the code that I am using to get the csv data and saves it on the wordpress database:
`function wd_add_data_metabox_with_namemb()
{
wp_suspend_cache_addition(true);
$file_path = get_stylesheet_directory() . '/PATINENTS_LAVISH.csv';
// echo var_dump($file_path);
if (isset($file_path)) {
$filename = $file_path;
$count_patients = 0;
$file = fopen($filename, "r");
while (($getData = fgetcsv($file, null, ',')) !== FALSE) { //GET THE VARIABLES SET
$count_patients++;
echo $count_patients . " :";
echo var_dump($getData);
echo '<br/>';
$name = $getData[2];
$last_name = $getData[3];
if ($name != '') {
$file_path_2 = get_stylesheet_directory() . '/CHARTS_PATIENTS.csv';
$filename_2 = $file_path_2;
$count_charts = 0;
$file_2 = fopen($filename_2, "r");
while (($getData_2 = fgetcsv($file_2, null, ',')) !== FALSE) { //GET THE VARIABLES SET
echo "Chart " . $count_charts . " : ";
echo var_dump($getData_2);
echo '<br/>';
$name_chart = $getData_2[0];
$last_name_chart = $getData_2[1];
echo $name . ' and ' . $name_chart;
echo $last_name . ' and ' . $last_name_chart;
echo '<br/>';
if ($name == $name_chart && $last_name == $last_name_chart) {
$q = new WP_Query(array(
'post_type' => 'patient',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'patient_name',
'value' => $name,
),
array(
'key' => 'patient_last_name',
'value' => $last_name,
),
)
));
while ($q->have_posts()) {
$q->the_post();
$patient_id_chart = get_the_ID();
echo 'Patient ID ' . $patient_id_chart;
$service_chart = get_post_meta($patient_id_chart, 'patient_area_treated_group', true);
$service_chart_2 = get_post_meta($patient_id_chart, 'patient_pre_charting_answers', true);
echo var_dump($service_chart_2);
// check for existing charts
if (!empty($service_chart)) {
$key = count($service_chart);
} else {
$key = 0;
}
if (get_post_type() == 'patient') {
$ticket_id = $patient_id_chart . '-' . $key;
$area_treated = array(
explode(' $', $getData_2[2], 2),
);
$time = strtotime($getData_2[8]);
$comments = $getData_2[6];
$discount_type = 'fixed';
$discount_amount = $getData_2[7];
$chart_energy = $getData_2[4];
$chart_size = $getData_2[3];
$chart_dcd = $getData_2[5];
if (get_page_by_title($area_treated[0], OBJECT, 'service')) {
// Exists
} else {
// Gather post data.
$my_post = array(
'post_title' => $area_treated[0][0],
'post_status' => 'publish',
'post_type' => 'service',
'meta_input' => array(
'service_male_price' => $area_treated[0][1],
'service_female_price' => $area_treated[0][1]
)
);
// Insert the post into the database.
wp_insert_post($my_post);
}
$service_chart[$key] = array(
'patient_service_ticket_id' => $ticket_id,
'patient_area_treated' => $area_treated,
'patient_service_units' => NULL,
'patient_service_time_treated' => $time,
'patient_service_comments' => $comments,
'patient_service_discount_type' => $discount_type,
'patient_service_discount_amount' => $discount_amount,
'patient_service_picture' => NULL,
);
$pre_service_chart[$key] = array(
'patient_service_pre_chart_id' => $ticket_id,
'patient_pregnant' => '',
'patient_pre_chart_comments' => NULL,
'patient_chart_energy' => $chart_energy,
'patient_chart_size' => $chart_size,
'patient_chart_dcd' => $chart_dcd,
);
if (!empty($area_treated) || $comments != '' || $discount_type != '' || $discount_amount != '') {
update_post_meta($patient_id_chart, 'patient_area_treated_group', $service_chart);
}
if (!empty($area_treated)) {
update_post_meta($patient_id_chart, 'patient_pre_charting_answers', $pre_service_chart);
// reset the form
update_post_meta($patient_id_chart, 'patient_area_treated', '');
update_post_meta($patient_id_chart, 'patient_service_time_treated_single', '');
update_post_meta($patient_id_chart, 'patient_service_comments_single', '');
update_post_meta($patient_id_chart, 'patient_service_discount_type_single', '');
update_post_meta($patient_id_chart, 'patient_service_discount_amount_single', '');
update_post_meta($patient_id_chart, 'patient_service_pre_chart_id', '');
update_post_meta($patient_id_chart, 'patient_pregnant', '');
update_post_meta($patient_id_chart, 'patient_pre_chart_comments', '');
update_post_meta($patient_id_chart, 'patient_chart_energy', '');
update_post_meta($patient_id_chart, 'patient_chart_size', '');
update_post_meta($patient_id_chart, 'patient_chart_dcd', '');
}
}
}
$count_charts++;
}
wp_reset_postdata();
}
}
}
fclose($file);
}
}
add_action('wp_head', 'wd_add_data_metabox_with_namemb');`
I just need the multicheckbox to read the database and show the checked options.
This is the code that creates all the custom fields for the patients custom post type with cmb2 plugin:
function patient_meta()
{
$role = user_has_role(get_current_user_id(), 'staff_nurse');
/**
* Metaboxes for Patient Info
*/
if ($role == false) {
$cmb_user = new_cmb2_box(array(
'id' => 'patient_meta',
'title' => __('Patient Data', 'cmb2'),
'object_types' => array('patient'), // Tells CMB2 to use user_meta vs post_meta
'show_names' => true,
'vertical_tabs' => false,
'tabs' => array(
array(
'id' => 'tab-1',
'title' => __('Info', 'cmb2'),
'fields' => array(
'patient_name',
'patient_last_name',
'patient_cell_phone',
'patient_home_phone',
'patient_date_of_birth',
'patient_gender',
'patient_email',
'patient_comments'
),
),
array(
'id' => 'tab-2',
'title' => __('Services', 'cmb2'),
'fields' => array(
'patient_area_treated_single',
'patient_service_comments_single',
'patient_service_discount_type_single',
'patient_service_discount_amount_single',
'patient_service_submit_single',
),
),
array(
'id' => 'tab-3',
'title' => __('Charts', 'cmb2'),
'fields' => array(
'patient_pre_charting_answers',
'patient_pre_chart_comments',
'patient_chart_area_treated',
'patient_time_treated',
'patient_chart_energy',
'patient_chart_size',
'patient_chart_dcd',
'patient_chart_comments',
'patient_chart_discount_type',
'patient_chart_discount_amount',
),
),
array(
'id' => 'tab-4',
'title' => __('Notes', 'cmb2'),
'fields' => array(
'patient_chart_comments',
'patient_note_comments_group',
'patient_notes_comments',
),
),
array(
'id' => 'tab-5',
'title' => __('Images', 'cmb2'),
'fields' => array(
'patient_images',
),
),
array(
'id' => 'tab-6',
'title' => __('Documents', 'cmb2'),
'fields' => array(
'patient_documents',
),
),
array(
'id' => 'tab-7',
'title' => __('Clearances', 'cmb2'),
'fields' => array(
'patient_clearances',
),
),
array(
'id' => 'tab-8',
'title' => __('Referrals', 'cmb2'),
'fields' => array(
'patient_referrals',
'referred_patient_name',
'referred_date',
'referred_date_used',
'referred_discount_used',
'patient_available_ticket_ids',
),
),
array(
'id' => 'tab-9',
'title' => __('History', 'cmb2'),
'fields' => array(
'patient_area_treated_group',
'patient_service_ticket_id',
'patient_area_treated',
'patient_service_comments',
'patient_service_picture',
),
),
),
));
} else {
$cmb_user = new_cmb2_box(array(
'id' => 'patient_meta',
'title' => __('Patient Data', 'cmb2'),
'object_types' => array('patient'), // Tells CMB2 to use user_meta vs post_meta
'show_names' => true,
'vertical_tabs' => false,
'tabs' => array(
array(
'id' => 'tab-1',
'title' => __('Info', 'cmb2'),
'fields' => array(
'patient_name',
'patient_last_name',
'patient_cell_phone',
'patient_home_phone',
'patient_date_of_birth',
'patient_gender',
'patient_email',
'patient_comments'
),
),
array(
'id' => 'tab-2',
'title' => __('Services', 'cmb2'),
'fields' => array(
'patient_area_treated_single',
'patient_service_comments_single',
'patient_service_discount_type_single',
'patient_service_discount_amount_single',
'patient_service_submit_single',
),
),
array(
'id' => 'tab-3',
'title' => __('Charts', 'cmb2'),
'fields' => array(
'patient_pre_charting_answers',
'patient_pre_chart_comments',
'patient_chart_area_treated',
'patient_time_treated',
'patient_chart_energy',
'patient_chart_size',
'patient_chart_dcd',
'patient_chart_comments',
'patient_chart_discount_type',
'patient_chart_discount_amount',
),
),
array(
'id' => 'tab-4',
'title' => __('Notes', 'cmb2'),
'fields' => array(
'patient_chart_comments',
'patient_note_comments_group',
'patient_notes_comments',
),
),
array(
'id' => 'tab-5',
'title' => __('Images', 'cmb2'),
'fields' => array(
'patient_images',
),
),
array(
'id' => 'tab-6',
'title' => __('Documents', 'cmb2'),
'fields' => array(
'patient_documents',
),
),
array(
'id' => 'tab-7',
'title' => __('Clearances', 'cmb2'),
'fields' => array(
'patient_clearances',
),
),
array(
'id' => 'tab-8',
'title' => __('Referrals', 'cmb2'),
'fields' => array(
'patient_referrals',
'referred_patient_name',
'referred_date',
'referred_date_used',
'referred_discount_used',
'patient_available_ticket_ids',
),
),
),
));
}
$cmb_user->add_field(array(
'name' => __('Patient Name', 'cmb2'),
'id' => 'patient_name',
'type' => 'text',
'column' => true,
'description' => '',
));
$cmb_user->add_field(array(
'name' => __('Last Name', 'cmb2'),
'id' => 'patient_last_name',
'type' => 'text',
'column' => true,
));
$cmb_user->add_field(array(
'name' => __('Cell Phone', 'cmb2'),
'id' => 'patient_cell_phone',
'type' => 'text',
'column' => true,
));
$cmb_user->add_field(array(
'name' => __('Home Phone', 'cmb2'),
'id' => 'patient_home_phone',
'type' => 'text',
'column' => true,
));
$cmb_user->add_field(array(
'name' => __('Date of Birth', 'cmb2'),
'description' => '',
'id' => 'patient_date_of_birth',
'type' => 'text_date'
));
$cmb_user->add_field(array(
'name' => 'Gender',
'id' => 'patient_gender',
'type' => 'radio_inline',
'options' => array(
'Male' => __('Male', 'cmb2'),
'Female' => __('Female', 'cmb2')
),
));
$cmb_user->add_field(array(
'name' => __('Email Address', 'cmb2'),
'id' => 'patient_email',
'type' => 'text'
));
$cmb_user->add_field(array(
'name' => __('Patient Comments', 'cmb2'),
'id' => 'patient_comments',
'type' => 'textarea'
));
/**
* Metaboxes for Patient Services
*/
/*****
* Single form to add to history tab
*****/
// $cmb_user->add_field(array(
// 'id' => 'patient_service_ticket_id_single',
// 'type' => 'text',
// 'description' => 'Ticket ID / Chart ID - not for editing',
// 'name' => 'Ticket ID',
// ) );
$cmb_user->add_field(array(
'id' => 'patient_area_treated_single',
'name' => __('Area Treated', 'cmb2'),
'type' => 'radio',
'options' => get_all_services(),
'default' => 'No Treatment $0.00'
));
$cmb_user->add_field(array(
'id' => 'patient_service_time_treated_single',
'name' => __('Time Treated', 'cmb2'),
'type' => 'text_datetime_timestamp',
// 'default' => get_post_datetime()
));
// $cmb_user->add_field(array(
// 'id' => 'patient_service_comments_single',
// 'name' => __('Comments', 'cmb2'),
// 'type' => 'textarea'
// ));
$cmb_user->add_field(array(
'name' => 'Discount Type',
'id' => 'patient_service_discount_type_single',
'type' => 'radio_inline',
'options' => array(
'none' => 'None',
'percentage' => 'Percentage',
'fixed' => 'Fixed Amount'
)
));
$cmb_user->add_field(array(
'name' => __('Discount Amount', 'cmb2'),
'id' => 'patient_service_discount_amount_single',
'type' => 'text'
));
$cmb_user->add_field(array(
'name' => __('Submit Service', 'cmb2'),
'id' => 'patient_service_submit_single',
'type' => 'text'
));
$cmb_user->add_field(array(
'name' => 'Add Service',
'id' => 'patient_service_submit_single',
'type' => 'button',
'after' => '<button value="submit-single" type="submit" class="btn btn-primary">Submit</button>'
));
$group_field_id = $cmb_user->add_field(array(
'id' => 'patient_area_treated_group',
'type' => 'group',
'options' => array(
'group_title' => __('Service {#}', 'cmb2'), // since version 1.1.4, {#} gets replaced by row number
'add_button' => __('Add Another Service', 'cmb2'),
'remove_button' => __('Remove Service', 'cmb2'),
'sortable' => true
),
));
$cmb_user->add_group_field($group_field_id, array(
'id' => 'patient_service_ticket_id',
'type' => 'text',
'description' => 'Ticket ID / Chart ID - not for editing',
'name' => 'Ticket ID'
));
$cmb_user->add_group_field($group_field_id, array(
'id' => 'patient_area_treated',
'name' => __('Area Treated', 'cmb2'),
'type' => 'multicheck',
'options' => get_all_services(),
'default' => 'No Treatment $0.00'
));
$cmb_user->add_group_field($group_field_id, array(
'id' => 'patient_service_time_treated',
'name' => __('Time Treated', 'cmb2'),
'type' => 'text_datetime_timestamp'
));
$cmb_user->add_group_field($group_field_id, array(
'id' => 'patient_service_comments',
'name' => __('Comments', 'cmb2'),
'type' => 'textarea'
));
$cmb_user->add_group_field($group_field_id, array(
'name' => 'Discount Type',
'id' => 'patient_service_discount_type',
'type' => 'radio_inline',
'options' => array(
'none' => 'None',
'percentage' => 'Percentage',
'fixed' => 'Fixed Amount'
)
));
$cmb_user->add_group_field($group_field_id, array(
'name' => 'Discount Amount',
'id' => 'patient_service_discount_amount',
'type' => 'text',
));
// $cmb_user->add_group_field( $group_field_id, array(
// 'id' => 'patient_service_picture',
// 'name' => __('Facial Picture', 'cmb2'),
// 'type' => 'file'
// ));
/**
* Metaboxes for Patient Charting
*/
$group_field_id = $cmb_user->add_field(array(
'id' => 'patient_pre_charting_answers',
'type' => 'group',
'options' => array(
'group_title' => __('Chart {#}', 'cmb2'), // since version 1.1.4, {#} gets replaced by row number
'add_button' => __('Add Another Chart', 'cmb2'),
'remove_button' => __('Remove Chart', 'cmb2'),
'sortable' => true,
),
));
// match pre-chart to service
$cmb_user->add_group_field($group_field_id, array(
'name' => 'This Laser Pre-Chart is for test',
'id' => 'patient_service_pre_chart_id',
'type' => 'select_plus',
'description' => 'Select Service Ticket ID',
'options' => get_ticket_ids()
));
// Id's for group's fields only need to be unique for the group. Prefix is not needed.
$cmb_user->add_group_field($group_field_id, array(
'name' => 'Are you pregnant or breastfeeding?',
'id' => 'patient_pregnant',
'type' => 'radio_inline',
'options' => array(
'Yes' => __('Yes', 'cmb2'),
'No' => __('No', 'cmb2')
),
));
$cmb_user->add_group_field($group_field_id, array(
'name' => 'Pre Chart Comments',
'id' => 'patient_pre_chart_comments',
'type' => 'textarea_small',
));
$cmb_user->add_group_field($group_field_id, array(
'name' => 'Energy',
'id' => 'patient_chart_energy',
'type' => 'text',
));
$cmb_user->add_group_field($group_field_id, array(
'name' => 'Spot Size',
'id' => 'patient_chart_size',
'type' => 'text',
));
$cmb_user->add_group_field($group_field_id, array(
'name' => 'DCD',
'id' => 'patient_chart_dcd',
'type' => 'text',
));
/**
* Metaboxes for Patient Notes
*/
$cmb_user->add_field(array(
'name' => 'Comments',
'id' => 'patient_chart_comments',
'type' => 'textarea_small',
'after' => '<button value="submit-single" type="submit" class="btn btn-primary">Submit</button>',
));
$group_field_id = $cmb_user->add_field(array(
'id' => 'patient_note_comments_group',
'type' => 'group',
'options' => array(
'group_title' => __('Comment {#}', 'cmb2'), // since version 1.1.4, {#} gets replaced by row number
'add_button' => __('Add Another Comment', 'cmb2'),
'remove_button' => __('Remove Comment', 'cmb2'),
'sortable' => true,
),
));
$cmb_user->add_group_field($group_field_id, array(
'name' => 'Comments',
'id' => 'patient_notes_comments',
'type' => 'textarea_small',
));
/**
* Metaboxes for Patient Images
*/
$cmb_user->add_field(array(
'name' => 'Images',
'id' => 'patient_images',
'type' => 'file_list',
'text' => array(
'file_text' => 'test'
)
));
/**
* Metaboxes for Patient Documents
*/
$cmb_user->add_field(array(
'name' => 'Documents',
'id' => 'patient_documents',
'type' => 'file_list',
));
/**
* Metaboxes for Patient Clearances
*/
$cmb_user->add_field(array(
'name' => 'Clearances',
'id' => 'patient_clearances',
'type' => 'file_list',
));
/**
* Metaboxes for Patient Referrals
*/
$group_field_id = $cmb_user->add_field(array(
'id' => 'patient_referrals',
'type' => 'group',
'options' => array(
'group_title' => __('Referral {#}', 'cmb2'), // since version 1.1.4, {#} gets replaced by row number
'add_button' => __('Add Another Referral', 'cmb2'),
'remove_button' => __('Remove Referral', 'cmb2'),
'sortable' => true,
),
));
$cmb_user->add_group_field($group_field_id, array(
'name' => 'Referred Patient Name',
'id' => 'referred_patient_name',
'type' => 'select',
'options' => get_patient_names()
));
$cmb_user->add_group_field($group_field_id, array(
'name' => 'Referred Date',
'id' => 'referred_date',
'type' => 'text_date',
));
$cmb_user->add_group_field($group_field_id, array(
'name' => 'Date Used',
'id' => 'referred_date_used',
'type' => 'text_date',
));
$cmb_user->add_group_field($group_field_id, array(
'name' => 'Discount Used',
'id' => 'referred_discount_used',
'type' => 'radio_inline',
'options' => array(
'Yes' => __('Yes', 'cmb2'),
'No' => __('No', 'cmb2')
),
));
$cmb_user->add_group_field($group_field_id, array(
'id' => 'patient_available_ticket_ids',
'name' => __('Ticket ID', 'cmb2'),
'description' => 'Assign the ticket ID to apply this discount',
'type' => 'select',
'options' => get_ticket_ids()
));
}
add_action('cmb2_init', 'patient_meta');

Search into multidimensional array comparing two keys without using foreach loop

I have arrays like this:
$actions = array(
array(
'type' => 'checkbox',
'id' => 'f0',
'is_active' => 1
),
array(
'type' => 'checkbox',
'id' => 'f1',
'is_active' => 0
),
array(
'type' => 'radio',
'id' => 'f2',
'is_active' => 0
),
array(
'type' => 'checkbox',
'id' => 'f3',
'is_active' => 1
),
array(
'type' => 'text',
'id' => 'f4',
'is_active' => 1
),
array(
'type' => 'checkbox',
'id' => 'f5',
'is_active' => 0
),
array(
'type' => 'checkbox',
'id' => 'f6',
'is_active' => 1
)
);
so i need to extract the arrays that has type = 'checkbox' and is_active = 1 only
without any "for loop" ..
Any good solution ?
You can use array_filter with callback to return only type which is checkbox.
$filtered = array_filter($array, function($v){return $v['type'] == 'checkbox' && $v['is_active'] == 1;});
Working example :- https://3v4l.org/idAR4
Edit of answer #Rakesh Jakhar
One more condition added as per the question
<?php
// Your code here!
$actions = array(
array(
'type' => 'checkbox',
'id' => 'f0',
'is_active' => 1
),
array(
'type' => 'checkbox',
'id' => 'f1',
'is_active' => 0
),
array(
'type' => 'radio',
'id' => 'f2',
'is_active' => 0
),
array(
'type' => 'checkbox',
'id' => 'f3',
'is_active' => 1
),
array(
'type' => 'text',
'id' => 'f4',
'is_active' => 1
),
array(
'type' => 'checkbox',
'id' => 'f5',
'is_active' => 0
),
array(
'type' => 'checkbox',
'id' => 'f6',
'is_active' => 1
)
);
$filtered = array_filter($actions, function($v){return $v['type'] == 'checkbox' && $v['is_active']==1 ;});
print_r($filtered);
?>
You also can sue array_reduce, Demo
$filtered = array_reduce($array, function($a,$b){
if($b['type'] == 'checkbox' && $b['is_active'] == 1){
$a[] = $b;
return $a;
}else{
return $a;
}},[]);
print_r($filtered);

Laravel administrator before_save() is not firing

I am getting userid from sentry and when creating or updating records, I need to update user_id to the posts too. I am using before_save() callback on the config.Sentry::getUser()->id is working correctly(i checked the function on routes and it is correctly providing user_id). While creating a post through administrator, user_id is not being updated and hence the error.
/**
* app/config/administrator/posts.php
*/
return array(
'title' => 'Posts',
'single' => 'post',
'model' => 'Post',
/**
* The display columns
*/
'columns' => array(
'user' => array(
'title' => 'User',
'relationship' => 'user',
'select' => "(:table).email",
),
'category' => array(
'title' => 'Category',
'relationship' => 'category',
'select' => "(:table).name",
),
'pricing' => array(
'title' => 'Pricing',
'relationship' => 'pricing',
'select' => "(:table).name",
),
'name' => array(
'title' => 'Name',
'select' => "name",
),
'title' => array(
'title' => 'Title',
'select' => "title",
),
'description' => array(
'title' => 'Description',
'select' => "description",
),
'order' => array(
'title' => 'Order',
'select' => "order_value",
),
'active_date' => array(
'title' => 'Start',
'select' => "active_date",
),
'expiry_date' => array(
'title' => 'End',
'select' => "expiry_date",
),
'status' => array(
'title' => 'Status',
'select' => "status",
)
),
/**
* The filter set
*/
// 'filters' => array(
// 'name' => array(
// 'title' => 'Name',
// ),
// 'description' => array(
// 'title' => 'Description',
// 'type' => "text",
// )
// ),
'before_save' => function(&$data)
{
$data['user_id'] = Sentry::getUser()->id;
// return $data;
},
/**
* The editable fields
*/
'edit_fields' => array(
'category' => array(
'title' => 'Category',
'type' => 'relationship',
'name_field' => "name",
),
'pricing' => array(
'title' => 'Pricing',
'type' => 'relationship',
'name_field' => "name",
),
'name' => array(
'title' => 'Name',
'type' => "text",
),
'title' => array(
'title' => 'Title',
'type' => "text",
),
'description' => array(
'title' => 'Description',
'type' => "textarea",
),
'active_date' => array(
'title' => 'Start',
'type' => "date",
),
'expiry_date' => array(
'title' => 'End',
'type' => "date",
),
'status' => array(
'title' => 'Status',
'type' => "bool",
)
),
);
Supposing this is administrator's bug or my ignorance, I solved this with another method. Into posts model, I created events for creating and updating posts:
public static function boot()
{
parent::boot();
static::creating(function($post)
{
$post->user_id = Sentry::getUser()->id;
});
static::updating(function($post)
{
$post->user_id = Sentry::getUser()->id;
});
}

How to Save the Repeatable fields data in Reusable Custom box WordPress?

hello I am using reusable custom metaboxes from https://github.com/tammyhart/Reusable-Custom-WordPress-Meta-Boxes..
these are my fields
array(
'label' => __('Setup Slider', 'crispy' ),
'desc' => __('create your slider image/ text using these repeatable options', 'crispy' ),
'id' => $prefix.'repeatable',
'type' => 'repeatable',
'sanitizer' => array(
'title' => 'sanitize_text_field',
'desc' => 'wp_kses_data'
),
'repeatable_fields' => array (
array(
'label' => __(' Slider Text alignment', 'crispy'),
'id' => 'alignment',
'type' => 'radio',
'options' => array (
'one' => array (
'label' => __('Left', 'crispy' ),
'value' => 'left'
),
'two' => array (
'label' => __('Center', 'crispy' ),
'value' => 'center'
),
'three' => array (
'label' => __('Right', 'crispy' ),
'value' => 'right'
)
)
),
array(
'label' => __('Background Image/pattern', 'crispy' ),
'id' => 'image',
'type' => 'image'
),
array(
'label' => __('Title', 'crispy' ),
'id' => 'title',
'type' => 'text'
),
array(
'label' => __('Description', 'crispy' ),
'id' => 'desc',
'type' => 'textarea'
),
)
),
My problem is i don't know how to store the fields value... can anyone resolve my problem!!..
$home_slider_alignment = get_post_meta( $post->ID, 'alignment', true);
i used this but doesn't help!!.. Those fields can be repeatable so the values are stored in array!!.. i don't know how to retrieve stored values from that array??..
Please help me!!.
It is working :)
enter code here
<?php
$projectgallery = get_post_meta($post->ID, 'arcadia_well_projectgallery', true); {
echo '<ul class="custom_repeatable">';
foreach ($projectgallery as $project) {
echo '<li>';
foreach($project as $i=>$value) {
echo $value;
}
echo '</li>';
}
echo '</ul>';
}
?>

loop options into array

I have an array that has a value with multiple options that is broken down into it's own array. One of those values I want to populate with a loop. Is this possible with the ; in the forloop I would think it would break. What is the best way to accomplish this request?
array(
'name' => __('Ensemble List', 'januas'),
'type' => 'checkbox',
'options' => array(
for ($x=0; $x<=10; $x++){
array('name' => __($x , 'title'), 'value' => $x)
}
)
),
Here is the complete array outside of what I posted:
$meta_boxes[] = array(
'id' => 'januas_speakers',
'title' => __('Ensemble', 'januas'),
'pages' => array('ja-event'),
'context' => 'normal',
'priority' => 'high',
'show_names' => true,
'fields' => array(
array(
'name' => __('Visible', 'januas'),
'desc' => __('Select Yes to show the box in the event page, No to hide it.', 'januas'),
'id' => 'januas_speakers_visible',
'type' => 'select',
'options' => array(
array('name' => __('Yes', 'januas'), 'value' => 'y'),
array('name' => __('No', 'januas'), 'value' => 'n'),
)
),
array(
'name' => __('Position', 'januas'),
'desc' => __('Select the preferred position for the box.', 'januas'),
'id' => 'januas_speakers_position',
'type' => 'select',
'options' => array(
array('name' => __('Main', 'januas'), 'value' => 'main'),
array('name' => __('Sidebar', 'januas'), 'value' => 'sidebar'),
)
),
array(
'name' => __('Order', 'januas'),
'desc' => __('Insert the box order (ex: 1).', 'januas'),
'id' => 'januas_speakers_order',
'std' => 1,
'type' => 'text_small'
),
array(
'name' => __('Show Title', 'januas'),
'desc' => __('Select Yes to show the box title, No to hide it.', 'januas'),
'id' => 'januas_speakers_showtitle',
'type' => 'select',
'options' => array(
array('name' => __('Yes', 'januas'), 'value' => 'y'),
array('name' => __('No', 'januas'), 'value' => 'n'),
)
),
array(
'name' => __('Show in Top menu', 'januas'),
'desc' => __('Select Yes to show the menu item in the event page top menu, No to hide it.', 'januas'),
'id' => 'januas_speakers_showinmenu',
'type' => 'select',
'options' => array(
array('name' => __('Yes', 'januas'), 'value' => 'y'),
array('name' => __('No', 'januas'), 'value' => 'n'),
)
),
array(
'name' => '',
'desc' => '',
'id' => 'januas_images_gallery',
'type' => 'image_gallery'
),
array(
'name' => __('Ensemble List', 'januas'),
'desc' => 'Select the ensemble memebers for this event.',
'id' => 'januas_speakers_completelist',
'type' => 'checkbox',
'options' => array_map(function ($x) {
return array(
'name' => __($x, 'januas'),
'value' => $x,
);
}, range(0,11))
),
array(
'name' => __('Display order', 'januas'),
'desc' => '',
'id' => 'januas_speakers_speakersorder',
'type' => 'event_speakers'
),
array(
'name' => '',
'desc' => '',
'id' => 'januas_speakers_backtotop',
'type' => 'backtotop'
)
),
);
You could use array_map:
array(
'name' => __('Ensemble List', 'januas'),
'type' => 'checkbox',
'options' => array_map(function ($x) {
return array(
'name' => __($x, 'title'),
'value' => $x,
);
}, range(0,11))
),
You should use array_push
$a = array(
'name' => __('Ensemble List', 'januas'),
'type' => 'checkbox',
'options' => array()
);
for ($x=0; $x<=10; $x++){
array_push( $a['options'], array('name' => __($x , 'title'), 'value' => $x) );
}
print_r($a);
Do you need to run the loop inside of options? How about this approach.
$foo = array();
for ($x=0;$x<10;$x++)
$foo[] = $x;
$bar = array(
'name' => 'hello',
'options' => $foo
);
print_r($bar);
https://eval.in/54925

Categories