Advertisement
designbymerovingi

myCRED: Add Message To Transfers

Jan 13th, 2014
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. /**
  2. * Step 1 : Insert Message Field
  3. * @since 0.1
  4. * @version 1.0
  5. */
  6. add_action( 'mycred_transfer_form_to', 'mycred_pro_transfer_message_field' );
  7. function mycred_pro_transfer_message_field() {
  8. echo '<label>Message</label><input type="text" name="transfer-message" id="mycred-transfer-message" value="" placeholder="Optional message to recipient" />';
  9. }
  10.  
  11. /**
  12. * Step 2 : Replace the Transfer Script
  13. * @since 0.1
  14. * @version 1.0
  15. */
  16. add_action( 'mycred_front_enqueue', 'mycred_pro_adjust_transfer_script', 99 );
  17. function mycred_pro_adjust_transfer_script() {
  18. wp_deregister_script( 'mycred-transfer-ajax' );
  19. wp_register_script(
  20. 'mycred-transfer-ajax',
  21. get_stylesheet_directory_uri() . '/js/transfer.js',
  22. array( 'jquery', 'jquery-ui-autocomplete' ),
  23. myCRED_TRANSFER_VERSION . '.2'
  24. );
  25. }
  26.  
  27. /**
  28. * Step 3 : Add Message
  29. * @since 0.1
  30. * @version 1.0
  31. */
  32. add_filter( 'mycred_add', 'mycred_pro_add_message', 98, 3 );
  33. function mycred_pro_add_message( $reply, $request, $mycred ) {
  34. if ( $reply === false || $request['ref'] != 'transfer' ) return $reply;
  35.  
  36. // If message is set
  37. if ( isset( $_POST['tmessage'] ) ) {
  38.  
  39. // Sanitize things so people dont sent "bad" messages
  40. $message = sanitize_text_field( $_POST['tmessage'] );
  41.  
  42. // Replace our custom template tag with the message
  43. $log_entry = str_replace( '%message%', $message, $request['entry'] );
  44.  
  45. // Update the balance now
  46. $mycred->update_users_balance( $request['user_id'], $request['amount'] );
  47.  
  48. // Add to the log
  49. $mycred->add_to_log(
  50. 'transfer',
  51. $request['user_id'],
  52. $request['amount'],
  53. $log_entry,
  54. $request['ref_id'],
  55. $request['data'],
  56. $request['type']
  57. );
  58.  
  59. // Tell myCRED not to duplicate this transaction
  60. // This should be 'done' but due to a 1.3 bug we must return false
  61. // in order to avoid duplicate entries.
  62. return false;
  63.  
  64. }
  65.  
  66. return $reply;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement