function callback($object, $data = array())
{
// Nonce field for validation
wp_nonce_field('cuztom_meta', 'cuztom_nonce');
// Get all inputs from $data
$data = $this->data;
$meta_type = $this->get_meta_type();
if (!empty($data)) {
echo '<input type="hidden" name="cuztom[__activate]" />';
echo '<div class="cuztom" data-object-id="' . ($meta_type == 'post' ? get_the_ID() : $object->ID) . '" data-meta-type="' . $meta_type . '">';
if (!empty($this->description)) {
echo '<p class="cuztom-box-description">' . $this->description . '</p>';
}
if ($data instanceof Cuztom_Tabs || $data instanceof Cuztom_Accordion || $data instanceof Cuztom_Bundle) {
$data->output($object);
} else {
echo '<table border="0" cellading="0" cellspacing="0" class="form-table cuztom-table">';
/* Loop through $data */
foreach ($data as $id_name => $field) {
$value = $this->is_meta_type('user') ? get_user_meta($object->ID, $id_name, true) : get_post_meta($object->ID, $id_name, true);
if (!$field instanceof Cuztom_Field_Hidden) {
echo '<tr>';
echo '<th class="cuztom-th">';
echo '<label for="' . $id_name . '" class="cuztom_label">' . $field->label . '</label>';
echo $field->required ? ' <span class="cuztom-required">*</span>' : '';
echo '<div class="cuztom-description description">' . $field->description . '</div>';
echo '</th>';
echo '<td class="cuztom-td">';
if ($field->repeatable && $field->_supports_repeatable) {
echo '<a class="button-secondary cuztom-button js-cuztom-add-field js-cuztom-add-sortable" href="#">';
echo sprintf('+ %s', __('Add', 'cuztom'));
echo '</a>';
echo '<ul class="js-cuztom-sortable cuztom-sortable cuztom_repeatable_wrap">';
echo $field->output($value, $object);
echo '</ul>';
} else {
echo $field->output($value, $object);
}
echo '</td>';
echo '</tr>';
} else {
echo $field->output($value, $object);
}
}
echo '</table>';
}
echo '</div>';
}
}