| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php if ( ! defined( 'ABSPATH' ) ) exit;
- /**
- * Function that checks the current sub count and updates the loading class if neccesary.
- * @param $string $form_id
- * @since 2.5
- * @return void
- */
- function nf_check_sub_limit( $form_id ) {
- global $ninja_forms_loading;
- if ( ! isset( $ninja_forms_loading ) )
- return false;
- $sub_limit = $ninja_forms_loading->get_form_setting( 'sub_limit_number' );
- if ( !$sub_limit or empty ( $sub_limit ) )
- return false;
- $args = array(
- 'form_id' => $form_id,
- 'action' => 'submit',
- );
- $sub_count = ninja_forms_get_sub_count( $args );
- if ( $sub_count >= $sub_limit ) {
- $ninja_forms_loading->update_form_setting( 'sub_limit_reached', true );
- }
- }
- add_action( 'ninja_forms_display_init', 'nf_check_sub_limit' );
- /**
- * Function that filters the display variable and returns false if sub limit has been reached.
- * @param bool $display
- * @param string $form_id
- * @since 2.5
- * @return string $display
- */
- function nf_sub_limit_display_filter( $display, $form_id ) {
- global $ninja_forms_loading;
- if ( ! isset( $ninja_forms_loading ) )
- return $display;
- if ( $ninja_forms_loading->get_form_setting( 'sub_limit_reached' ) ) {
- $display = 0;
- }
- return $display;
- }
- add_filter( 'ninja_forms_display_show_form', 'nf_sub_limit_display_filter', 10, 2 );
- /**
- * Function that echoes the sub limit reached message if necessary.
- * @param string $form_id
- * @since 2.5
- * @return void
- */
- function nf_sub_limit_display_msg( $form_id ) {
- global $ninja_forms_loading;
- if ( ! isset( $ninja_forms_loading ) )
- return false;
- if ( $ninja_forms_loading->get_form_setting( 'sub_limit_reached' ) ) {
- $msg = $ninja_forms_loading->get_form_setting( 'sub_limit_msg' );
- $msg = wpautop( $msg );
- $msg = do_shortcode( $msg );
- $msg = '<div class="sub-limit-reached-msg">' . $msg . '</div>';
- $msg = apply_filters( 'nf_sub_limit_reached_msg', $msg, $form_id );
- echo $msg;
- }
- }
- add_action( 'ninja_forms_display_user_not_logged_in', 'nf_sub_limit_display_msg' );
|