SuccessMessage.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. /**
  3. * Class NF_Action_SuccessMessage
  4. */
  5. final class NF_Actions_SuccessMessage extends NF_Abstracts_Action
  6. {
  7. /**
  8. * @var string
  9. */
  10. protected $_name = 'successmessage';
  11. /**
  12. * @var array
  13. */
  14. protected $_tags = array();
  15. /**
  16. * @var string
  17. */
  18. protected $_timing = 'late';
  19. /**
  20. * @var int
  21. */
  22. protected $_priority = 10;
  23. /**
  24. * Constructor
  25. */
  26. public function __construct()
  27. {
  28. parent::__construct();
  29. $this->_nicename = __( 'Success Message', 'ninja-forms' );
  30. $settings = Ninja_Forms::config( 'ActionSuccessMessageSettings' );
  31. $this->_settings = array_merge( $this->_settings, $settings );
  32. add_action( 'nf_before_import_form', array( $this, 'import_form_action_success_message' ), 11 );
  33. }
  34. /*
  35. * PUBLIC METHODS
  36. */
  37. public function save( $action_settings )
  38. {
  39. }
  40. public function process( $action_settings, $form_id, $data )
  41. {
  42. if( isset( $action_settings[ 'success_msg' ] ) ) {
  43. if( ! isset( $data[ 'actions' ] ) || ! isset( $data[ 'actions' ][ 'success_message' ] ) ) {
  44. $data[ 'actions' ][ 'success_message' ] = '';
  45. }
  46. ob_start();
  47. do_shortcode( $action_settings['success_msg'] );
  48. $ob = ob_get_clean();
  49. if( $ob ) {
  50. $data[ 'debug' ][ 'console' ][] = sprintf( __( 'Shortcodes should return and not echo, see: %s', 'ninja-forms' ), 'https://codex.wordpress.org/Shortcode_API#Output' );
  51. $data['actions']['success_message'] .= $action_settings['success_msg'];
  52. } else {
  53. $message = do_shortcode( $action_settings['success_msg'] );
  54. $data['actions']['success_message'] .= wpautop( $message );
  55. }
  56. }
  57. return $data;
  58. }
  59. public function import_form_action_success_message( $import )
  60. {
  61. if( ! isset( $import[ 'actions' ] ) ) return $import;
  62. foreach( $import[ 'actions' ] as &$action ){
  63. if( 'success_message' == $action[ 'type' ] ){
  64. $action[ 'type' ] = 'successmessage';
  65. }
  66. }
  67. return $import;
  68. }
  69. }