PluginProbe
Property Hive / 1.4.46
Property Hive v1.4.46
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-offer.php

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

306 lines 9.6 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 offer 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_Offer' ) ) :
20
21 /**
22 * PH_Admin_CPT_Offer Class
23 */
24 class PH_Admin_CPT_Offer extends PH_Admin_CPT {
25
26 /**
27 * Constructor
28 */
29 public function __construct() {
30 $this->type = 'offer';
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-offer_columns', array( $this, 'edit_columns' ) );
38 add_action( 'manage_offer_posts_custom_column', array( $this, 'custom_columns' ), 2 );
39 add_filter( 'manage_edit-offer_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-offer', 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 offer
54 * @return boolean
55 */
56 private function is_editing_offer() {
57 if ( ! empty( $_GET['post_type'] ) && 'offer' == $_GET['post_type'] ) {
58 return true;
59 }
60 if ( ! empty( $_GET['post'] ) && 'offer' == get_post_type( (int)$_GET['post'] ) ) {
61 return true;
62 }
63 if ( ! empty( $_REQUEST['post_id'] ) && 'offer' == 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['offer_date_time'] = __( 'Offer Date / Time', 'propertyhive' );
100 $columns['property'] = __( 'Property', 'propertyhive' );
101 $columns['property_owner'] = __( 'Property Owner', 'propertyhive' );
102 $columns['applicant'] = __( 'Applicant', 'propertyhive' );
103 $columns['amount'] = __( 'Amount', 'propertyhive' );
104 $columns['status'] = __( 'Status', '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_offer;
115
116 if ( empty( $the_offer ) || $the_offer->ID != $post->ID )
117 {
118 $the_offer = new PH_Offer( $post->ID );
119 }
120
121 switch ( $column ) {
122 case 'offer_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_offer->offer_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 $property = new PH_Property((int)$the_offer->property_id);
177 echo $property->get_formatted_full_address();
178
179 break;
180 case 'property_owner' :
181
182 $the_property = new PH_Property((int)$the_offer->property_id);
183 $owner_contact_ids = $the_property->_owner_contact_id;
184 if (
185 ( !is_array($owner_contact_ids) && $owner_contact_ids != '' && $owner_contact_ids != 0 )
186 ||
187 ( is_array($owner_contact_ids) && !empty($owner_contact_ids) )
188 )
189 {
190 if ( !is_array($owner_contact_ids) )
191 {
192 $owner_contact_ids = array($owner_contact_ids);
193 }
194
195 foreach ( $owner_contact_ids as $owner_contact_id )
196 {
197 echo get_the_title($owner_contact_id) . '<br>';
198 if ( count($owner_contact_ids) == 1 )
199 {
200 echo '<div class="row-actions">';
201 echo 'T: ' . get_post_meta($owner_contact_id, '_telephone_number', TRUE) . '<br>';
202 echo 'E: ' . get_post_meta($owner_contact_id, '_email_address', TRUE);
203 echo '</div>';
204 }
205 }
206 }
207 else
208 {
209 echo '-';
210 }
211
212 break;
213 case 'applicant' :
214
215 echo get_the_title($the_offer->applicant_contact_id);
216 echo '<div class="row-actions">';
217 echo 'T: ' . get_post_meta($the_offer->applicant_contact_id, '_telephone_number', TRUE) . '<br>';
218 echo 'E: ' . get_post_meta($the_offer->applicant_contact_id, '_email_address', TRUE);
219 echo '</div>';
220
221 break;
222 case 'amount' :
223
224 echo $the_offer->get_formatted_amount();
225
226 break;
227 case 'status' :
228 echo ucwords(str_replace("_", " ", $the_offer->status));
229 break;
230 default :
231 break;
232 }
233 }
234
235 /**
236 * Make offer columns sortable
237 *
238 * @access public
239 * @param mixed $columns
240 * @return array
241 */
242 public function custom_columns_sort( $columns ) {
243 $custom = array(
244 'offer_date_time' => '_offer_date_time',
245 );
246 return wp_parse_args( $custom, $columns );
247 }
248
249 /**
250 * Offer column orderby
251 *
252 * @access public
253 * @param mixed $vars
254 * @return array
255 */
256 public function custom_columns_orderby( $vars ) {
257 if ( is_admin() && $vars['post_type'] == 'offer' )
258 {
259 $vars = array_merge( $vars, array(
260 'meta_key' => '_offer_date_time',
261 'orderby' => 'meta_value',
262 ) );
263 }
264 return $vars;
265 }
266
267 /**
268 * Remove bulk edit option
269 * @param array $actions
270 */
271 public function remove_bulk_actions( $actions ) {
272 unset( $actions['edit'] );
273 return $actions;
274 }
275
276 /**
277 * Show a status filter box
278 */
279 public function propertyhive_filters() {
280 global $typenow, $wp_query;
281
282 if ( 'offer' != $typenow ) {
283 return;
284 }
285
286 echo apply_filters( 'propertyhive_offer_filters', $output );
287 }
288
289 /**
290 * Filter the offers in admin based on options
291 *
292 * @param mixed $query
293 */
294 public function offer_filters_query( $query ) {
295 global $typenow, $wp_query;
296
297 if ( 'offer' == $typenow ) {
298
299 }
300 }
301 }
302
303 endif;
304
305 return new PH_Admin_CPT_Offer();
306