post_type == "opalestate_property" ) {
$user_id = $post->post_author;
$user = get_user_by( 'id', $user_id );
if ( ! is_object( $user ) ) {
$from_name = opalestate_get_option( 'from_name' );
$from_email = opalestate_get_option( 'from_email' );
$subject = opalestate_get_option( 'publish_submission_email_subject' );
$headers = sprintf( "From: %s <%s>\r\n Content-type: text/html", $from_name, $from_email );
$property_link = get_permalink( $post );
$tags = [ "{first_name}", "{last_name}", "{property_link}" ];
$values = [ $user->first_name, $user->last_name, $property_link ];
$body = opalestate_get_option( 'publish_submission_email_body' );
$body = html_entity_decode( $body );
$message = str_replace( $tags, $values, $body );
return wp_mail( $user->user_email, $subject, $message, $headers );
}
}
}
/**
*
*/
public function metaboxes() {
global $pagenow;
if ( ( $pagenow == 'post.php' || $pagenow == 'post-new.php' ) ) {
$metabox = new Opalestate_Property_MetaBox();
return $metabox->register_admin_fields();
}
}
private function add_fields_to_tab( $fields, $tab ) {
foreach ( $fields as $field ) {
$field['tab'] = $tab;
$field['render_row_cb'] = [ 'CMB2_Tabs', 'tabs_render_row_cb' ];
$this->tab->add_field( $field );
}
}
/**
*
*/
public function columns( $columns ) {
$comments = $columns['comments'];
unset( $columns['author'], $columns['date'], $columns['comments'] );
$columns['featured'] = esc_html__( 'Featured', 'opalestate-pro' );
$columns['sku'] = esc_html__( 'Sku', 'opalestate-pro' );
$columns['address'] = esc_html__( 'Address', 'opalestate-pro' );
$columns['comments'] = $comments;
$columns['author'] = esc_html__( 'Author', 'opalestate-pro' );
$columns['date'] = esc_html__( 'Date', 'opalestate-pro' );
$columns['expiry_date'] = esc_html__( 'Expiry Date', 'opalestate-pro' );
return $columns;
}
/**
*
*/
public function custom_columns( $column, $post_id ) {
$property = new Opalestate_Property( $post_id );
$nonce = wp_create_nonce( 'opalestate_property' );
switch ( $column ) {
case 'featured':
if ( $property->featured ) {
$url = add_query_arg( [
'action' => 'opalestate_remove_feature_property',
'property_id' => $post_id,
'nonce' => $nonce,
], admin_url( 'admin-ajax.php' ) );
echo '';
echo '';
echo '';
} else {
$url = add_query_arg( [
'action' => 'opalestate_set_feature_property',
'property_id' => $post_id,
'nonce' => $nonce,
], admin_url( 'admin-ajax.php' ) );
echo '';
echo '';
echo '';
}
break;
case 'sku':
if ( $property->sku ) {
echo sprintf( '%s', $property->sku );
}
break;
case 'address':
if ( $property->address ) {
echo sprintf( '%s', $property->address );
}
break;
case 'expiry_date':
if ( $property->get_expiry_date() ) {
$expired_time = $property->get_expiry_date();
echo date_i18n( __( 'Y/m/d g:i:s a', 'opalestate-pro' ), $expired_time );
} else {
echo esc_html_x( '---', 'expired property', 'opalestate-pro' );
}
break;
default:
# code...
break;
}
}
public function remove_meta_boxes() {
remove_meta_box( 'authordiv', 'opalestate_property', 'normal' );
}
/**
* Query custom fields as well as content.
*
* @param \WP_Query $wp The WP_Query object.
*
* @access private
*/
public function search_custom_fields( $wp ) {
global $pagenow;
if ( 'edit.php' !== $pagenow
|| empty( $wp->query_vars['s'] )
|| 'opalestate_property' !== $wp->query_vars['post_type']
|| ! isset( $_GET['s'] ) ) {
return;
}
$post_ids = opalestate_search_property_by_term( opalestate_clean( wp_unslash( $_GET['s'] ) ) ); // WPCS: input var ok, sanitization ok.
if ( ! empty( $post_ids ) ) {
// Remove "s" - we don't want to search order name.
unset( $wp->query_vars['s'] );
// Query by found posts.
$wp->query_vars['post__in'] = array_merge( $post_ids, [ 0 ] );
}
}
/**
* Filters the default post display states used in the posts list table.
*
* @param string[] $post_states An array of post display states.
* @param WP_Post $post The current post object.
*/
public function display_post_states( $post_states, $post ) {
if ( 'expired' == $post->post_status ) {
$post_states['expired'] = _x( 'Expired', 'post status', 'opalestate-pro' );
}
return $post_states;
}
}
new Opalestate_Admin_Property();