Changeset 2083
- Timestamp:
- 11/16/2015 01:16:20 PM (9 years ago)
- Location:
- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-payments
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-payments/classes/payment-request.php
r2060 r2083 20 20 add_action( 'save_post', array( $this, 'save_payment' ), 10, 2 ); 21 21 add_filter( 'map_meta_cap', array( $this, 'modify_capabilities' ), 10, 4 ); 22 add_action( 'transition_post_status', array( $this, 'transition_post_status' ), 10, 3 ); 22 23 23 24 // Columns … … 165 166 'high' 166 167 ); 168 169 add_meta_box( 'wcp_log', __( 'Log', 'wordcamporg' ), array( $this, 'render_log_metabox' ), 170 self::POST_TYPE, 'normal', 'high' ); 167 171 } 168 172 … … 248 252 249 253 require_once( dirname( __DIR__ ) . '/views/payment-request/metabox-files.php' ); 254 } 255 256 /** 257 * Render the Log metabox 258 * 259 * @param WP_Post $post 260 */ 261 public function render_log_metabox( $post ) { 262 $log = get_post_meta( $post->ID, '_wcp_log', true ); 263 if ( empty( $log ) ) 264 $log = '[]'; 265 266 $log = json_decode( $log, true ); 267 268 // I wish I had a spaceship. 269 uasort( $log, function( $a, $b ) { 270 if ( $b['timestamp'] == $a ) 271 return 0; 272 273 return ( $a['timestamp'] < $b['timestamp'] ) ? -1 : 1; 274 }); 275 276 require_once( dirname( __DIR__ ) . '/views/payment-request/metabox-log.php' ); 250 277 } 251 278 … … 658 685 $post_data['post_status'] = 'incomplete'; 659 686 $this->notify_requester_request_incomplete( $post_data_raw['ID'], $post_data, $post_data_raw ); 687 688 update_post_meta( $post_data_raw['ID'], '_wcp_incomplete_notes', sanitize_text_field( $post_data_raw['wcp_mark_incomplete_notes'] ) ); 660 689 } else { 661 690 $previous_status = $post_data['post_status']; … … 901 930 } 902 931 932 public function transition_post_status( $new, $old, $post ) { 933 if ( $post->post_type != self::POST_TYPE ) 934 return; 935 936 $user = get_user_by( 'id', get_current_user_id() ); 937 if ( $new == 'auto-draft' ) 938 return; 939 940 if ( $new == 'incomplete' && $old != 'incomplete' ) { 941 $incomplete_text = get_post_meta( $post->ID, '_wcp_incomplete_notes', true ); 942 $incomplete_text = preg_replace( '#\.$#', '', $incomplete_text ); // trailing-undot-it. 943 WordCamp_Payments::log( $post->ID, sprintf( 'Marked as incomplete by %s: %s.', $user->display_name, $incomplete_text ), array( 944 'user_id' => $user->ID, 945 'action' => 'marked-incomplete', 946 'reason' => 'maybe notes', 947 ) ); 948 } elseif ( $new == 'paid' && $old != 'paid' ) { 949 WordCamp_Payments::log( $post->ID, sprintf( 'Marked as paid by %s.', $user->display_name ), array( 950 'user_id' => $user->ID, 951 'action' => 'marked-paid', 952 ) ); 953 } elseif ( $old == 'auto-draft' && $new != 'auto-draft' ) { 954 WordCamp_Payments::log( $post->ID, sprintf( 'Request created by %s.', $user->display_name ), array( 955 'user_id' => $user->ID, 956 'action' => 'updated', 957 ) ); 958 } else { 959 WordCamp_Payments::log( $post->ID, sprintf( 'Request updated by %s.', $user->display_name ), array( 960 'user_id' => $user->ID, 961 'action' => 'updated', 962 ) ); 963 } 964 } 965 903 966 /** 904 967 * Attach unattached files to the payment request post -
sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-payments/classes/wordcamp-payments.php
r1939 r2083 11 11 */ 12 12 public function __construct() { 13 add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_assets' ) );13 add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_assets' ), 11 ); 14 14 } 15 15 … … 39 39 ); 40 40 41 // Let's still include our .css file even if these are unavailable. 42 $soft_deps = array( 'jquery-ui', 'wp-datepicker-skins' ); 43 foreach ( $soft_deps as $key => $handle ) 44 if ( ! wp_style_is( $handle, 'registered' ) ) 45 unset( $soft_deps[ $key ] ); 46 41 47 wp_register_style( 42 48 'wordcamp-payments', 43 49 plugins_url( 'css/wordcamp-payments.css', __DIR__ ), 44 array( 'jquery-ui', 'wp-datepicker-skins' ),50 $soft_deps, 45 51 self::VERSION 46 52 ); … … 68 74 } 69 75 } 76 77 /** 78 * Log something with a payment request. 79 * 80 * @param int $post_id The payment requset ID. 81 * @param string $message A log message. 82 * @param array $data Optional data. 83 */ 84 public static function log( $post_id, $message, $data = array() ) { 85 global $wpdb; 86 87 $entry = array( 88 'timestamp' => time(), 89 'message' => $message, 90 'data' => $data, 91 ); 92 93 $log = get_post_meta( $post_id, '_wcp_log', true ); 94 if ( empty( $log ) ) 95 $log = '[]'; 96 97 $log = json_decode( $log, true ); 98 $log[] = $entry; 99 $log = json_encode( $log ); 100 101 update_post_meta( $post_id, '_wcp_log', wp_slash( $log ) ); 102 } 70 103 } -
sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-payments/css/wordcamp-payments.css
r995 r2083 27 27 margin-bottom: 1em; 28 28 } 29 30 #wcp_log .inside { 31 margin: 0; 32 padding: 0; 33 } 34 35 #wcp_log .wcp-request-log { 36 border-collapse: collapse; 37 width: 100%; 38 } 39 40 #wcp_log .wcp-request-log td { 41 padding: 8px; 42 } 43 44 #wcp_log td.timestamp { 45 width: 130px; 46 }
Note: See TracChangeset
for help on using the changeset viewer.