-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add default column populate method? #67
Comments
Or instead have the public function populate($columns, $callback)
{
$columns = (array)$columns;
foreach ($columns as $column) {
$this->populate[$column] = $callback;
}
return $this;
} |
Thanks both, the It should also be possible to define a named function and pass this to the populate method to keep things more DRY. <?php
// Create an array of columns to add.
$columns = [
'_name' => __('Name'),
'_deal_date' => __('Deal time'),
'_is_dealed' => __('Price'),
'_age' => __('Age'),
'_phone' => __('Phone'),
'_price' => __('Price'),
];
// Define a default populate column callback.
function populate_column( $column, $post_id) {
echo get_post_meta($post_id, $column, true);
}
// Create the post type.
$client = new PostType( 'client' );
// Modify columns.
$client->columns()
->hide([ 'title', 'date' ])
->add($columns);
// Loop over all added columns and set the default populate column callback.
foreach ( $columns as $key ) {
$client->columns->populate( $key, 'populate_column' );
}
// Populate is dealed column differently.
$client->columns()->populate( '_is_dealed', function ( $column, $post_id ) {
$deal_price = get_post_meta( $post_id, 'deal_price' );
echo ( $deal_price ) ? '<span class="is-success">Dealed</span>' : '<span class="is-default">not dealed</span>';
} ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In my usecase, i added serval post metas in columns, is there any way to set default column polulate method? so we can keep the code more dry?
maybe add a method populateDefault like the code below?
The text was updated successfully, but these errors were encountered: