PluginProbe
Property Hive / 1.4.57
Property Hive v1.4.57
2.3.1 2.3.0 2.2.6 2.2.5 2.2.4 2.2.3 2.2.2 1.4.46 1.4.47 1.4.48 1.4.49 1.4.5 1.4.50 1.4.51 1.4.52 1.4.53 1.4.54 1.4.55 1.4.56 1.4.57 1.4.58 1.4.59 1.4.6 1.4.60 1.4.61 All 261 releases
propertyhive / includes / admin / post-types / class-ph-admin-cpt-appraisal.php

class-ph-admin-cpt-appraisal.php in Property Hive 1.4.57, at includes/admin/post-types/class-ph-admin-cpt-appraisal.php

332 lines 10.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Admin functions for the appraisal post type
4 *
5 * @author PropertyHive
6 * @category Admin
7 * @package PropertyHive/Admin/Post Types
8 * @version 1.0.0
9 */
10
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit; // Exit if accessed directly
13 }
14
15 if ( ! class_exists( 'PH_Admin_CPT' ) ) {
16 include( 'class-ph-admin-cpt.php' );
17 }
18
19 if ( ! class_exists( 'PH_Admin_CPT_Appraisal' ) ) :
20
21 /**
22 * PH_Admin_CPT_Appraisal Class
23 */
24 class PH_Admin_CPT_Appraisal extends PH_Admin_CPT {
25
26 /**
27 * Constructor
28 */
29 public function __construct() {
30 $this->type = 'appraisal';
31
32 // Before data updates
33 add_action( 'pre_post_update', array( $this, 'pre_post_update' ) );
34 add_filter( 'wp_insert_post_data', array( $this, 'wp_insert_post_data' ) );
35
36 // Admin Columns
37 add_filter( 'manage_edit-appraisal_columns', array( $this, 'edit_columns' ) );
38 add_action( 'manage_appraisal_posts_custom_column', array( $this, 'custom_columns' ), 2 );
39 add_filter( 'manage_edit-appraisal_sortable_columns', array( $this, 'custom_columns_sort' ) );
40 add_filter( 'request', array( $this, 'custom_columns_orderby' ) );
41
42 // Bulk / quick edit
43 add_filter( 'bulk_actions-edit-appraisal', array( $this, 'remove_bulk_actions') );
44 /*add_action( 'bulk_edit_custom_box', array( $this, 'bulk_edit' ), 10, 2 );
45 add_action( 'quick_edit_custom_box', array( $this, 'quick_edit' ), 10, 2 );
46 add_action( 'save_post', array( $this, 'bulk_and_quick_edit_save_post' ), 10, 2 );*/
47
48 // Call PH_Admin_CPT constructor
49 parent::__construct();
50 }
51
52 /**
53 * Check if we're editing or adding a appraisal
54 * @return boolean
55 */
56 private function is_editing_appraisal() {
57 if ( ! empty( $_GET['post_type'] ) && 'appraisal' == $_GET['post_type'] ) {
58 return true;
59 }
60 if ( ! empty( $_GET['post'] ) && 'appraisal' == get_post_type( (int)$_GET['post'] ) ) {
61 return true;
62 }
63 if ( ! empty( $_REQUEST['post_id'] ) && 'appraisal' == get_post_type( (int)$_REQUEST['post_id'] ) ) {
64 return true;
65 }
66 return false;
67 }
68
69 /**
70 * @param int $post_id
71 */
72 public function pre_post_update( $post_id ) {
73
74 }
75
76 /**
77 * @param array $data
78 * @return array
79 */
80 public function wp_insert_post_data( $data ) {
81
82
83 return $data;
84 }
85
86 /**
87 * Change the columns shown in admin.
88 */
89 public function edit_columns( $existing_columns ) {
90
91 if ( empty( $existing_columns ) && ! is_array( $existing_columns ) ) {
92 $existing_columns = array();
93 }
94
95 unset( $existing_columns['title'], $existing_columns['comments'], $existing_columns['date'] );
96
97 $columns = array();
98 $columns['cb'] = '<input type="checkbox" />';
99 $columns['start_date_time'] = __( 'Appraisal Date / Time', 'propertyhive' );
100 $columns['property'] = __( 'Property', 'propertyhive' );
101 $columns['owner'] = __( 'Owner / Landlord', 'propertyhive' );
102 $columns['price'] = __( 'Valued Price', 'propertyhive' );
103 $columns['status'] = __( 'Status', 'propertyhive' );
104 $columns['negotiators'] = __( 'Attending Negotiators', 'propertyhive' );
105
106 return array_merge( $columns, $existing_columns );
107 }
108
109 /**
110 * Define our custom columns shown in admin.
111 * @param string $column
112 */
113 public function custom_columns( $column ) {
114 global $post, $propertyhive, $the_appraisal;
115
116 if ( empty( $the_appraisal ) || $the_appraisal->ID != $post->ID )
117 {
118 $the_appraisal = new PH_Appraisal( $post->ID );
119 }
120
121 switch ( $column ) {
122 case 'start_date_time' :
123
124 $edit_link = get_edit_post_link( $post->ID );
125 //$title = _draft_or_post_title();
126 $title = date("H:i jS F Y", strtotime($the_appraisal->start_date_time));
127
128 $post_type_object = get_post_type_object( $post->post_type );
129 $can_edit_post = current_user_can( $post_type_object->cap->edit_post, $post->ID );
130
131 echo '<strong><a class="row-title" href="' . esc_url( $edit_link ) .'">' . $title.'</a></strong>';
132
133 // Get actions
134 $actions = array();
135
136 if ( $can_edit_post && 'trash' != $post->post_status ) {
137 $actions['edit'] = '<a href="' . get_edit_post_link( $post->ID, true ) . '" title="' . esc_attr( __( 'Edit this item', 'propertyhive' ) ) . '">' . __( 'Edit', 'propertyhive' ) . '</a>';
138 }
139 if ( current_user_can( $post_type_object->cap->delete_post, $post->ID ) ) {
140 if ( 'trash' == $post->post_status ) {
141 $actions['untrash'] = '<a title="' . esc_attr( __( 'Restore this item from the Trash', 'propertyhive' ) ) . '" href="' . wp_nonce_url( admin_url( sprintf( $post_type_object->_edit_link . '&amp;action=untrash', $post->ID ) ), 'untrash-post_' . $post->ID ) . '">' . __( 'Restore', 'propertyhive' ) . '</a>';
142 } elseif ( EMPTY_TRASH_DAYS ) {
143 //$actions['trash'] = '<a class="submitdelete" title="' . esc_attr( __( 'Move this item to the Trash', 'propertyhive' ) ) . '" href="' . get_delete_post_link( $post->ID ) . '">' . __( 'Trash', 'propertyhive' ) . '</a>';
144 }
145
146 if ( 'trash' == $post->post_status || ! EMPTY_TRASH_DAYS ) {
147 $actions['delete'] = '<a class="submitdelete" title="' . esc_attr( __( 'Delete this item permanently', 'propertyhive' ) ) . '" href="' . get_delete_post_link( $post->ID, '', true ) . '">' . __( 'Delete Permanently', 'propertyhive' ) . '</a>';
148 }
149 }
150 if ( $post_type_object->public ) {
151 if ( in_array( $post->post_status, array( 'pending', 'draft', 'future' ) ) ) {
152 if ( $can_edit_post )
153 $actions['view'] = '<a href="' . esc_url( add_query_arg( 'preview', 'true', get_permalink( $post->ID ) ) ) . '" title="' . esc_attr( sprintf( __( 'Preview &#8220;%s&#8221;', 'propertyhive' ), $title ) ) . '" rel="permalink">' . __( 'Preview', 'propertyhive' ) . '</a>';
154 } elseif ( 'trash' != $post->post_status ) {
155 $actions['view'] = '<a href="' . get_permalink( $post->ID ) . '" title="' . esc_attr( sprintf( __( 'View &#8220;%s&#8221;', 'propertyhive' ), $title ) ) . '" rel="permalink">' . __( 'View', 'propertyhive' ) . '</a>';
156 }
157 }
158
159 $actions = apply_filters( 'post_row_actions', $actions, $post );
160
161 echo '<div class="row-actions">';
162
163 $i = 0;
164 $action_count = sizeof($actions);
165
166 foreach ( $actions as $action => $link ) {
167 ++$i;
168 ( $i == $action_count ) ? $sep = '' : $sep = ' | ';
169 echo '<span class="' . $action . '">' . $link . $sep . '</span>';
170 }
171 echo '</div>';
172
173 break;
174 case 'property' :
175
176 echo $the_appraisal->get_formatted_full_address();
177 break;
178 case 'owner' :
179
180 $owner_contact_ids = $the_appraisal->_property_owner_contact_id;
181 if (
182 ( !is_array($owner_contact_ids) && $owner_contact_ids != '' && $owner_contact_ids != 0 )
183 ||
184 ( is_array($owner_contact_ids) && !empty($owner_contact_ids) )
185 )
186 {
187 if ( !is_array($owner_contact_ids) )
188 {
189 $owner_contact_ids = array($owner_contact_ids);
190 }
191
192 foreach ( $owner_contact_ids as $owner_contact_id )
193 {
194 echo get_the_title($owner_contact_id) . '<br>';
195 if ( count($owner_contact_ids) == 1 )
196 {
197 echo '<div class="row-actions">';
198 echo 'T: ' . get_post_meta($owner_contact_id, '_telephone_number', TRUE) . '<br>';
199 echo 'E: ' . get_post_meta($owner_contact_id, '_email_address', TRUE);
200 echo '</div>';
201 }
202 }
203 }
204 else
205 {
206 echo '-';
207 }
208 break;
209 case 'price' :
210
211 if ( $the_appraisal->status == 'carried_out' )
212 {
213 echo $the_appraisal->get_formatted_price();
214 }
215 else
216 {
217 echo '-';
218 }
219 break;
220 case 'status' :
221
222 echo ucwords(str_replace("_", " ", $the_appraisal->status));
223
224 if ( $the_appraisal->status == 'pending' )
225 {
226 echo '<br>';
227 // confirmation status
228 if ( $the_appraisal->all_confirmed == 'yes' )
229 {
230 echo __( 'All Parties Confirmed', 'propertyhive' );
231 }
232 else
233 {
234 echo __( 'Awaiting Confirmation', 'propertyhive' );
235 }
236 }
237
238 break;
239 case 'negotiators' :
240 $negotiator_ids = get_post_meta( $post->ID, '_negotiator_id' );
241 if ( is_array($negotiator_ids) && !empty($negotiator_ids) )
242 {
243 $negotiators = array();
244 foreach ( $negotiator_ids as $negotiator_id )
245 {
246 $user_info = get_userdata($negotiator_id);
247 $negotiators[] = $user_info->display_name;
248 }
249 echo implode(", ", $negotiators);
250 }
251 else
252 {
253 echo '<em>- ' . __( 'None Set', 'propertyhive' ) . ' -</em>';
254 }
255 break;
256 default :
257 break;
258 }
259 }
260
261 /**
262 * Make appraisal columns sortable
263 *
264 * @access public
265 * @param mixed $columns
266 * @return array
267 */
268 public function custom_columns_sort( $columns ) {
269 $custom = array(
270 'start_date_time' => '_start_date_time',
271 );
272 return wp_parse_args( $custom, $columns );
273 }
274
275 /**
276 * Appraisal column orderby
277 *
278 * @access public
279 * @param mixed $vars
280 * @return array
281 */
282 public function custom_columns_orderby( $vars ) {
283 if ( is_admin() && $vars['post_type'] == 'appraisal' )
284 {
285 $vars = array_merge( $vars, array(
286 'meta_key' => '_start_date_time',
287 'orderby' => 'meta_value'
288 ) );
289 }
290 return $vars;
291 }
292
293 /**
294 * Remove bulk edit option
295 * @param array $actions
296 */
297 public function remove_bulk_actions( $actions ) {
298 unset( $actions['edit'] );
299 return $actions;
300 }
301
302 /**
303 * Show a status filter box
304 */
305 public function propertyhive_filters() {
306 global $typenow, $wp_query;
307
308 if ( 'appraisal' != $typenow ) {
309 return;
310 }
311
312 echo apply_filters( 'propertyhive_appraisal_filters', $output );
313 }
314
315 /**
316 * Filter the appraisal in admin based on options
317 *
318 * @param mixed $query
319 */
320 public function appraisal_filters_query( $query ) {
321 global $typenow, $wp_query;
322
323 if ( 'appraisal' == $typenow ) {
324
325 }
326 }
327 }
328
329 endif;
330
331 return new PH_Admin_CPT_Appraisal();
332