Forum Replies Created

Viewing 15 replies - 1 through 15 (of 19 total)
  • Thread Starter decisivedesign

    (@decisivedesign)

    Or could I have just had them “update billing”… it’s not clear whether that may have worked or not…

    Thread Starter decisivedesign

    (@decisivedesign)

    Jason, if you read these, it would be nice to allow users to re-sign up for their existing membership level without the initial fee should instances like this occur. #featurerequest

    Thanks,

    Thread Starter decisivedesign

    (@decisivedesign)

    Nevermind. I’m dumb. The card isn’t stored in PMPro, so how could the new gateway have it. They will have to re-sign up… so we’ll have to create a different membership level that matches everything except their initial payment and have them “upgrade” to it.

    Thread Starter decisivedesign

    (@decisivedesign)

    Changing the “Latest feed event date” to a value other than zero fixed my problem.

    That setting never got changed or anything, so I’m assuming the code was updated and affected it?

    Marking resolved – hopefully others will find this.

    Additional tags: calendar not displaying, calendar stopped working, calendar gone, No events to display

    Thread Starter decisivedesign

    (@decisivedesign)

    Here are screenshots of everything related in ours. Please advise.

    Plugin settings: https://i.imgur.com/MuvvXhd.png
    Specific calendar settings: https://i.imgur.com/ACxAd6h.png
    Feed shortcodes: https://i.imgur.com/nz3o8Oz.png
    Front end view: https://i.imgur.com/yM1sasM.png

    Thread Starter decisivedesign

    (@decisivedesign)

    Yes. Of course. We didn’t change any settings, there is music that has been on the calendar for a very long time before and after the current date, and the API key is in there per your instructions.

    Google is showing two requests to hit the API in dev console, which there should be many more than that, but since it is showing some, that’s strange.

    Do you have any way to test the connection to the API/Calendar from the WordPress site? Or something?

    Thread Starter decisivedesign

    (@decisivedesign)

    The answer to my above question was yes.

    I went in and copied the core code from date.php (i think) and created, for my purposes, a “SSN” custom form tag…

    Code looks like this, for reference.

    // #####################################################################
    // ADD SSN TAG/FIELD & Validation
    // #####################################################################
    add_action( 'wpcf7_init', 'wpcf7_add_shortcode_ssn' );
    
    function wpcf7_add_shortcode_ssn() {
    	wpcf7_add_shortcode( array( 'ssn', 'ssn*' ),
    		'wpcf7_ssn_shortcode_handler', true );
    }
    
    function wpcf7_ssn_shortcode_handler( $tag ) {
    	$tag = new WPCF7_Shortcode( $tag );
    
    	if ( empty( $tag->name ) )
    		return '';
    
    	$validation_error = wpcf7_get_validation_error( $tag->name );
    
    	$class = wpcf7_form_controls_class( $tag->type );
    
    	$class .= ' wpcf7-validates-as-ssn';
    
    	if ( $validation_error )
    		$class .= ' wpcf7-not-valid';
    
    	$atts = array();
    
    	$atts['class'] = $tag->get_class_option( $class );
    	$atts['id'] = $tag->get_id_option();
    	$atts['maxlength'] = $tag->get_maxlength_option();
    	$atts['minlength'] = $tag->get_minlength_option();
    
    	if ( $tag->has_option( 'readonly' ) )
    		$atts['readonly'] = 'readonly';
    
    	if ( $tag->is_required() )
    		$atts['aria-required'] = 'true';
    
    	$atts['aria-invalid'] = $validation_error ? 'true' : 'false';
    
    	$value = (string) reset( $tag->values );
    
    	if ( $tag->has_option( 'placeholder' ) || $tag->has_option( 'watermark' ) ) {
    		$atts['placeholder'] = $value;
    		$value = '';
    	}
    
    	$value = $tag->get_default_option( $value );
    
    	$value = wpcf7_get_hangover( $tag->name, $value );
    
    	$atts['value'] = $value;
    
    	if ( wpcf7_support_html5() ) {
    		$atts['type'] = $tag->basetype;
    	} else {
    		$atts['type'] = 'text';
    	}
    
    	$atts['name'] = $tag->name;
    
    	$atts = wpcf7_format_atts( $atts );
    
    	$html = sprintf(
    		'<span class="wpcf7-form-control-wrap %1$s"><input %2$s />%3$s</span>',
    		sanitize_html_class( $tag->name ), $atts, $validation_error );
    
    	return $html;
    }
    
    /* Validation filter */
    
    add_filter( 'wpcf7_validate_ssn', 'wpcf7_ssn_validation_filter', 10, 2 );
    add_filter( 'wpcf7_validate_ssn*', 'wpcf7_ssn_validation_filter', 10, 2 );
    
    function wpcf7_ssn_validation_filter( $result, $tag ) {
    	$tag = new WPCF7_Shortcode( $tag );
    
    	$name = $tag->name;
    
    	$value = isset( $_POST[$name] )
    		? trim( strtr( (string) $_POST[$name], "\n", " " ) )
    		: '';
    
    	if ( ! empty( $value ) ) {
    		$maxlength = $tag->get_maxlength_option();
    		$minlength = $tag->get_minlength_option();
    
    		if ( $maxlength && $minlength && $maxlength < $minlength ) {
    			$maxlength = $minlength = null;
    		}
    
    		$code_units = wpcf7_count_code_units( $value );
    
    		if ( false !== $code_units ) {
    			if ( $maxlength && $maxlength < $code_units ) {
    				$result->invalidate( $tag, wpcf7_get_message( 'invalid_too_long' ) );
    			} elseif ( $minlength && $code_units < $minlength ) {
    				$result->invalidate( $tag, wpcf7_get_message( 'invalid_too_short' ) );
    			}
    		}
    	}
    
    	if ( $tag->is_required() && '' == $value ) {
    		$result->invalidate( $tag, wpcf7_get_message( 'invalid_required' ) );
    	}elseif (!preg_match('/^((?!666|000|9d{2})\d{3}(-?|\.?|\s?)\d{2}(-?|\.?|\s?)\d{4})$/', $_POST['SSN'] )) {
    				$result->invalidate( $tag, "SSN format: ###-##-#### or #########" );
    	}
    	return $result;
    }
    /* Messages */
    
    add_filter( 'wpcf7_messages', 'wpcf7_ssn_messages' );
    
    function wpcf7_ssn_messages( $messages ) {
    	return array_merge( $messages, array(
    		'invalid_ssn' => array(
    			'description' => __( "SSN format that the sender entered is invalid", 'contact-form-7' ),
    			'default' => __( 'ssn format seems invalid.', 'contact-form-7' )
    		) ) );
    }
    // #####################################################################
    // END SSN TAG/FIELD & Validation
    // #####################################################################
    Thread Starter decisivedesign

    (@decisivedesign)

    Do I need to build out the entire tag (html, validation, default classes, etc) like, for example, in your date.php file where you define the date tag for this to work?

    Why don’t the select options/values just render to the page source like you would expect so I could avoid all this shenanigans?

    Thread Starter decisivedesign

    (@decisivedesign)

    Thanks for your response Takayuki Miyoshi.

    So I’ve put together what I thought would work for this, based on your simple example of creating a custom form tag. It appears that I’m missing something (I wouldn’t call myself a php developer).

    All I’m trying to do is add some validation to a social security field.

    Here’s what I have. Please let me know what I’m doing wrong here.

    The tag itself in CF7 is:
    [SSN* SSN minlength:9 maxlength:11 placeholder “SSN”]

    //SSN Custom Validation
    
    add_action( 'wpcf7_init', 'custom_add_shortcode_SSN');
    function custom_add_shortcode_SSN() {
    	wpcf7_add_shortcode('SSN', 'custom_ssn_validation_filter', true);
    }
    
    add_filter( 'wpcf7_validate_SSN*', 'custom_ssn_validation_filter', 10, 2 );
    
    function custom_ssn_validation_filter( $result, $tag ) {
        $tag = 'SSN';
    
        if ( 'SSN' == $tag->name ) {
    		if (!preg_match('/^\(?\d{3}\)?-?.? *\d{2}-?.? *-?\d{4}$/', $_POST['SSN'] )) {
    				$result->invalidate( $tag, "SSN format: ###-##-#### or #########" );
    			}
        }
        return $result;
    }

    For me, this appears to have been somewhat related to the way the previous developers had set up the multisite https. They were just forcing it via htaccess and had left the site URLs as http.

    Updating the site URLs seemed to fix many HTTPS issues I was having and allowed me to access the ShareThis settings in the admin, where I had to re-save the new settings with the HTTPS version of share this (it didn’t update automatically).

    Now, there still seems to be issues with mixed content for share this because I can’t go back and select a different style of Share This icons, etc (tried to set it up on another multisite site and no go). Luckily it let me save the settings on that final step/page to update it to the HTTPS, but it still looks like it needs to be looked at.

    Good Luck.

    I second strredewolf on this. Numerous mixed content warning in the admin and you can’t change plugin settings if HTTPS is being forced sitewide (including admin).

    I can’t get into my back office at all – redirect loop. Tried throwing that plugin in there, but nothing (not activated?).

    Not good. Any ideas? Thanks.

    Thread Starter decisivedesign

    (@decisivedesign)

    Thanks for responding,

    We were not using our own FB API token. We are as of a few seconds ago.

    I was pulling the error from the error log file, yes.

    And no, the plugin was not automatically deactivating when those errors occurred.

    I would also like to figure this out. I found several (older) examples of users retaining field data for individual fields, but my client would like to turn it off for all forms and fields.

    I would like to do so without hacking the core code and just removing clearForm();.

    Thread Starter decisivedesign

    (@decisivedesign)

    EkoJr! So far so good! I’ll let you know if I see anything else wonky.

    Feature suggestion: Sort by most popular posts based on viewcount (and maybe comment count?)

Viewing 15 replies - 1 through 15 (of 19 total)