ID );
wp_nonce_field( 'srpp_override_save', 'srpp_override_nonce' );
$modes = array(
'global' => __( 'Use global settings', 'advanced-css3-related-posts-widget' ),
'auto' => __( 'Automatic', 'advanced-css3-related-posts-widget' ),
'custom' => __( 'Custom only', 'advanced-css3-related-posts-widget' ),
'auto_custom' => __( 'Custom first, then automatic', 'advanced-css3-related-posts-widget' ),
'disable' => __( 'Disable here', 'advanced-css3-related-posts-widget' ),
);
?>
', esc_attr( $name ) );
foreach ( srpp_int_list( $ids ) as $id ) {
$title = get_the_title( $id );
printf(
'%3$s',
absint( $id ),
esc_attr( $name ),
esc_html( $title ? $title : '#' . $id )
);
}
printf(
'
',
esc_attr__( 'Search…', 'advanced-css3-related-posts-widget' )
);
}
/**
* Persist.
*
* @param int $post_id Post ID.
* @param WP_Post $post Post.
*/
public function save( $post_id, $post ) {
if ( ! isset( $_POST['srpp_override_nonce'] ) ) {
return;
}
if ( ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['srpp_override_nonce'] ) ), 'srpp_override_save' ) ) {
return;
}
if ( wp_is_post_revision( $post_id ) || wp_is_post_autosave( $post_id ) ) {
return;
}
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return;
}
unset( $post );
$raw = isset( $_POST['srpp_override'] ) ? wp_unslash( $_POST['srpp_override'] ) : array(); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
$mode = isset( $raw['mode'] ) ? sanitize_key( $raw['mode'] ) : 'global';
$data = array(
'mode' => in_array( $mode, array( 'global', 'auto', 'custom', 'auto_custom', 'disable' ), true ) ? $mode : 'global',
'include' => srpp_int_list( isset( $raw['include'] ) ? $raw['include'] : array() ),
// phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude -- Post meta value, not a query argument.
'exclude' => srpp_int_list( isset( $raw['exclude'] ) ? $raw['exclude'] : array() ),
);
if ( 'global' === $data['mode'] && ! $data['include'] && ! $data['exclude'] ) {
delete_post_meta( $post_id, SRPP_Engine::OVERRIDE_META );
} else {
update_post_meta( $post_id, SRPP_Engine::OVERRIDE_META, $data );
}
SRPP_Cache::flush_post( $post_id );
}
}