Skip to content

Instantly share code, notes, and snippets.

@michael-cannon
Last active August 29, 2015 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michael-cannon/094b99361fd327d7edf5 to your computer and use it in GitHub Desktop.
Save michael-cannon/094b99361fd327d7edf5 to your computer and use it in GitHub Desktop.
Pilot Press integration for Custom Bulk/Quick Edit plugin
<?php
/**
* Pilot Press integration for Custom Bulk/Quick Edit plugin
*
* @author Michael Cannon <mc@aihr.us>
*/
add_filter( 'manage_post_posts_columns', 'rgp_manage_post_posts_columns' );
add_filter( 'manage_guitarlessons_posts_columns', 'rgp_manage_post_posts_columns' );
add_filter( 'manage_weeklylessons_posts_columns', 'rgp_manage_post_posts_columns' );
add_filter( 'manage_songlessons_posts_columns', 'rgp_manage_post_posts_columns' );
function rgp_manage_post_posts_columns( $columns ) {
$columns['_pilotpress_level'] = esc_html__( 'Pilot Press Level' );
$columns['_pilotpress_show_in_nav'] = esc_html__( 'Show in Navigation' );
$columns['_pilotpress_redirect_location'] = esc_html__( 'On Error' );
return $columns;
}
add_filter( 'cbqe_settings_as_types', 'rgp_settings_as_types' );
function rgp_settings_as_types( $as_types ) {
$as_types['pilot_press_levels'] = esc_html__( 'As Pilot Press Levels' );
$as_types['pilotpress_redirect_location'] = esc_html__( 'As Pilot Press Redirect Location' );
return $as_types;
}
add_filter( 'cbqe_configuration_default', 'rgp_configuration_default', 10, 3 );
/**
*
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
function rgp_configuration_default( $default, $id, $type ) {
switch ( $type ) {
case 'pilot_press_levels':
$default = array();
$default[] = 'Free';
$default[] = 'All Access Monthly Membership';
$default[] = 'All Access Lifetime Membership';
$default = implode( "\n", $default );
break;
case 'pilotpress_redirect_location':
global $pilotpress;
$pages = $pilotpress->get_routeable_pages();
$default = array();
foreach ( $pages as $key => $value ) {
$default[] = $key . '|' . $value;
}
$default = implode( "\n", $default );
break;
}
return $default;
}
add_filter( 'cbqe_quick_edit_custom_box_field', 'rgp_quick_edit_custom_box_field', 10, 5 );
/**
*
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
function rgp_quick_edit_custom_box_field( $input, $field_type, $field_name, $options, $bulk_mode ) {
$column_name = str_replace( Custom_Bulkquick_Edit::SLUG, '', $field_name );
$field_name_var = str_replace( '-', '_', $field_name );
$result = $input;
switch ( $field_type ) {
case 'pilot_press_levels':
if ( ! $bulk_mode ) {
$result = Custom_Bulkquick_Edit::custom_box_checkbox( $column_name, $field_name, $field_name_var, $options );
} else {
$result = Custom_Bulkquick_Edit::custom_box_select_multiple( $column_name, $field_name, $field_name_var, $options, $bulk_mode );
}
break;
case 'pilotpress_redirect_location':
$result = Custom_Bulkquick_Edit::custom_box_select( $column_name, $field_name, $field_name_var, $options, $bulk_mode );
break;
}
return $result;
}
add_filter( 'cbqe_manage_posts_custom_column_field_type', 'rgp_manage_posts_custom_column_field_type', 10, 4 );
/**
*
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
function rgp_manage_posts_custom_column_field_type( $current, $field_type, $column, $post_id ) {
global $post;
$result = $current;
switch ( $field_type ) {
case 'pilot_press_levels':
$field = '_pilotpress_level';
$current = get_post_meta( $post_id, $field );
$details = Custom_Bulkquick_Edit::get_field_config( $post->post_type, $column );
$options = explode( "\n", $details );
$field_type = 'checkbox';
$result = Custom_Bulkquick_Edit::column_checkbox_radio( $column, $current, $options, $field_type );
break;
case 'pilotpress_redirect_location':
$details = Custom_Bulkquick_Edit::get_field_config( $post->post_type, $column );
$options = explode( "\n", $details );
$result = Custom_Bulkquick_Edit::column_select( $column, $current, $options, $field_type );
break;
}
return $result;
}
add_action( 'cbqe_save_post', 'rgp_save_post', 20 );
function rgp_save_post( $post_id ) {
if ( ! current_user_can( 'edit_page', $post_id ) ) {
return;
}
$post = get_post( $post_id );
$post_type = $post->post_type;
$field = '_pilotpress_level';
$field_type = Custom_Bulkquick_Edit::is_field_enabled( $post_type, $field );
if ( empty( $field_type ) ) {
return;
}
delete_post_meta( $post_id, $field );
if ( ! isset( $_POST[ Custom_Bulkquick_Edit::SLUG . $field ] ) ) {
return;
}
$new = $_POST[ Custom_Bulkquick_Edit::SLUG . $field ];
if ( empty( $new ) ) {
return;
}
if ( in_array( Custom_Bulkquick_Edit_Settings::RESET, $new ) ) {
return;
}
foreach ( $new as $value ) {
add_post_meta( $post_id, $field, $value );
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment