widget.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. /**
  3. * Adds Ninja Forms widget.
  4. */
  5. class Ninja_Forms_Widget extends WP_Widget {
  6. /**
  7. * Register widget with WordPress.
  8. */
  9. public function __construct() {
  10. parent::__construct(
  11. 'ninja_forms_widget', // Base ID
  12. 'Ninja Forms Widget', // Name
  13. array( 'description' => __( 'Ninja Forms Widget', 'ninja-forms' ), ) // Args
  14. );
  15. }
  16. /**
  17. * Front-end display of widget.
  18. *
  19. * @see WP_Widget::widget()
  20. *
  21. * @param array $args Widget arguments.
  22. * @param array $instance Saved values from database.
  23. */
  24. public function widget( $args, $instance ) {
  25. extract( $args );
  26. $form_id = $instance['form_id'];
  27. $form_row = ninja_forms_get_form_by_id( $form_id );
  28. $form_data = $form_row['data'];
  29. if ( isset ( $form_data['form_title'] ) ) {
  30. $title = $form_data['form_title'];
  31. } else {
  32. $title = '';
  33. }
  34. $title = apply_filters( 'widget_title', $title );
  35. $display_title = $instance['display_title'];
  36. echo $before_widget;
  37. if ( ! empty( $title ) AND $display_title == 1 )
  38. echo $before_title . $title . $after_title;
  39. ninja_forms_display_form( $form_id );
  40. echo $after_widget;
  41. }
  42. /**
  43. * Sanitize widget form values as they are saved.
  44. *
  45. * @see WP_Widget::update()
  46. *
  47. * @param array $new_instance Values just sent to be saved.
  48. * @param array $old_instance Previously saved values from database.
  49. *
  50. * @return array Updated safe values to be saved.
  51. */
  52. public function update( $new_instance, $old_instance ) {
  53. $instance = array();
  54. $instance['form_id'] = $new_instance['form_id'];
  55. $instance['display_title'] = $new_instance['display_title'];
  56. return $instance;
  57. }
  58. /**
  59. * Back-end widget form.
  60. *
  61. * @see WP_Widget::form()
  62. *
  63. * @param array $instance Previously saved values from database.
  64. */
  65. public function form( $instance ) {
  66. if( isset( $instance['form_id'] ) ){
  67. $form_id = $instance['form_id'];
  68. }else{
  69. $form_id = '';
  70. }
  71. if( isset( $instance['display_title'] ) ){
  72. $display_title = $instance['display_title'];
  73. }else{
  74. $display_title = 0;
  75. }
  76. ?>
  77. <p>
  78. <label>
  79. <?php _e( 'Display Title', 'ninja-forms' ); ?>
  80. <input type="hidden" value="0" name="<?php echo $this->get_field_name( 'display_title' ); ?>">
  81. <input type="checkbox" value="1" id="<?php echo $this->get_field_id( 'display_title' ); ?>" name="<?php echo $this->get_field_name( 'display_title' ); ?>" <?php checked( $display_title, 1 );?>>
  82. </label>
  83. </p>
  84. <p>
  85. <select id="<?php echo $this->get_field_id( 'form_id' ); ?>" name="<?php echo $this->get_field_name( 'form_id' ); ?>">
  86. <option value="0">-- <?php _e('None', 'ninja-forms');?></option>
  87. <?php
  88. $all_forms = ninja_forms_get_all_forms();
  89. foreach($all_forms as $form){
  90. $title = $form['data']['form_title'];
  91. $id = $form['id'];
  92. ?>
  93. <option value = "<?php echo $id;?>" <?php selected( $id, $form_id );?>>
  94. <?php echo $title;?>
  95. </option>
  96. <?php
  97. }
  98. ?>
  99. </select>
  100. </p>
  101. <?php
  102. }
  103. } // class Foo_Widget
  104. function NF_register_widgets() {
  105. register_widget( 'ninja_forms_widget' );
  106. }
  107. add_action( 'widgets_init', 'NF_register_widgets' );