Post Status Excerpt (No. 8) — Gravity Forms 2.5, CC Coming to WP • Post Status[] – 1; } /* Disable tracking if the opt-out cookie exists. */ if ( __gtagTrackerIsOptedOut() ) { window[disableStr] = true; } /* Opt-out function */ function __gtagTrackerOptout() { document.cookie = disableStr + ‘=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/’; window[disableStr] = true; } if ( ‘undefined’ === typeof gaOptout ) { function gaOptout() { __gtagTrackerOptout(); } } window.dataLayer = window.dataLayer || []; if ( mi_track_user ) { function __gtagTracker() {dataLayer.push( arguments );} __gtagTracker( ‘js’, new Date() ); __gtagTracker( ‘set’, { ‘developer_id.dZGIzZG’ : true, ‘dimension1’ : ‘post’,’dimension2′ : ‘false’,’dimension3′ : ‘David Bisset’,’dimension4′ : ‘2021-04-29T16:10:24-05:00′,’dimension5’ : ‘na’, }); __gtagTracker( ‘config’, ‘UA-37840849-1’, { forceSSL:true, } ); window.gtag = __gtagTracker; ( function () { /* https://developers.google.com/analytics/devguides/collection/analyticsjs/ */ /* ga and __gaTracker compatibility shim. */ var noopfn = function () { return null; }; var newtracker = function () { return new Tracker(); }; var Tracker = function () { return null; }; var p = Tracker.prototype; p.get = noopfn; p.set = noopfn; p.send = function (){ var args = Array.prototype.slice.call(arguments); args.unshift( ‘send’ ); __gaTracker.apply(null, args); }; var __gaTracker = function () { var len = arguments.length; if ( len === 0 ) { return; } var f = arguments[len – 1]; if ( typeof f !== ‘object’ || f === null || typeof f.hitCallback !== ‘function’ ) { if ( ‘send’ === arguments[0] ) { var hitConverted, hitObject = false, action; if ( ‘event’ === arguments[1] ) { if ( ‘undefined’ !== typeof arguments[3] ) { hitObject = { ‘eventAction’: arguments[3], ‘eventCategory’: arguments[2], ‘eventLabel’: arguments[4], ‘value’: arguments[5] ? arguments[5] : 1, } } } if ( typeof arguments[2] === ‘object’ ) { hitObject = arguments[2]; } if ( typeof arguments[5] === ‘object’ ) { Object.assign( hitObject, arguments[5] ); } if ( ‘undefined’ !== typeof ( arguments[1].hitType ) ) { hitObject = arguments[1]; } if ( hitObject ) { action = ‘timing’ === arguments[1].hitType ? ‘timing_complete’ : hitObject.eventAction; hitConverted = mapArgs( hitObject ); __gtagTracker( ‘event’, action, hitConverted ); } } return; } function mapArgs( args ) { var gaKey, hit = {}; var gaMap = { ‘eventCategory’: ‘event_category’, ‘eventAction’: ‘event_action’, ‘eventLabel’: ‘event_label’, ‘eventValue’: ‘event_value’, ‘nonInteraction’: ‘non_interaction’, ‘timingCategory’: ‘event_category’, ‘timingVar’: ‘name’, ‘timingValue’: ‘value’, ‘timingLabel’: ‘event_label’, }; for ( gaKey in gaMap ) { if ( ‘undefined’ !== typeof args[gaKey] ) { hit[gaMap[gaKey]] = args[gaKey]; } } return hit; } try { f.hitCallback(); } catch ( ex ) { } }; __gaTracker.create = newtracker; __gaTracker.getByName = newtracker; __gaTracker.getAll = function () { return []; }; __gaTracker.remove = noopfn; __gaTracker.loaded = true; window[‘__gaTracker’] = __gaTracker; } )(); } else { console.log( “” ); ( function () { function __gtagTracker() { return null; } window[‘__gtagTracker’] = __gtagTracker; window[‘gtag’] = __gtagTracker; } )(); } ]]> -1; } function monsterinsights_forms_record_conversion( event ) { var monsterinsights_form_conversion_id = event.target.id; var monsterinsights_form_action = event.target.getAttribute(“miforms-action”); if ( monsterinsights_form_conversion_id && ! monsterinsights_form_action ) { document.getElementById(monsterinsights_form_conversion_id).setAttribute(“miforms-action”, “submitted”); __gtagTracker(‘event’, ‘conversion’, { event_category: ‘form’, event_label: monsterinsights_form_conversion_id, value: 1, }); } } /* Attach the events to all clicks in the document after page and GA has loaded */ function monsterinsights_forms_load() { if ( typeof(__gaTracker) !== ‘undefined’ && __gaTracker && __gaTracker.hasOwnProperty( “loaded” ) && __gaTracker.loaded == true ) { var __gaFormsTrackerWindow = window; if ( __gaFormsTrackerWindow.addEventListener ) { __gaFormsTrackerWindow.addEventListener( “load”, monsterinsights_forms_record_impression, false ); } else { if ( __gaFormsTrackerWindow.attachEvent ) { __gaFormsTrackerWindow.attachEvent(“onload”, monsterinsights_forms_record_impression ); } } } else if ( typeof(__gtagTracker) !== ‘undefined’ && __gtagTracker ) { var __gtagFormsTrackerWindow = window; if ( __gtagFormsTrackerWindow.addEventListener ) { __gtagFormsTrackerWindow.addEventListener( “load”, monsterinsights_forms_record_impression, false ); } else { if ( __gtagFormsTrackerWindow.attachEvent ) { __gtagFormsTrackerWindow.attachEvent(“onload”, monsterinsights_forms_record_impression ); } } } else { setTimeout(monsterinsights_forms_load, 200); } } /* Custom Ninja Forms impression tracking */ if (window.jQuery) { jQuery(document).on( ‘nfFormReady’, function( e, layoutView ) { var label = layoutView.el; label = label.substring(1, label.length); label = label.split(‘-‘).slice(0,3).join(‘-‘); __gtagTracker(‘event’, ‘impression’, { event_category: ‘form’, event_label: label, value: 1, non_interaction: true }); }); } /* Custom Bloom Form tracker */ function monsterinsights_add_bloom_forms_ids() { var bloom_forms = document.querySelectorAll( ‘.et_bloom_form_content form’ ); if ( bloom_forms.length > 0 ) { for ( var i = 0; i < bloom_forms.length; i++ ) { if ( '' === bloom_forms[i].id ) { var form_parent_root = monsterinsights_find_parent_with_class( bloom_forms[i], 'et_bloom_optin' ); if ( form_parent_root ) { var classes = form_parent_root.className.split( ' ' ); for ( var j = 0; j = 0 ) { return element.parentNode; } else { return monsterinsights_find_parent_with_class( element.parentNode, className ); } } return false; } monsterinsights_forms_load(); ]]>

One of the oldest commercial WordPress Plugins gets a facelift.

In this episode of Post Status Excerpt, David Bisset and Cory Miller talk about the recent 2.5 update to Gravity Forms. Cory reflects on the early days of the WordPress ecosystem. David recounts how Gravity Forms was his first major plugin purchase as a freelancer. Find out what’s in the newest Gravity release and why it matters for WordPress professionals.

Also covered: David brings up this week’s announcement from Matt Mullenweg about CC Search, a CC0 (Creative Commons Zero) image search engine: they are joining the WordPress project. Does this mean the WordPress Media Library might get some overdue attention?

Every week Post Status Excerpt will brief you on important WordPress news — in about 15 minutes or less! Learn what’s new in WordPress in a flash.

Browse our archives, and don’t forget to subscribe via iTunes, YouTube, Stitcher, Simplecast, or RSS.

Mentioned in the show:

Sponsor: Gravity Forms

Gravity Forms is the easiest and most trusted advanced forms solution for your WordPress website. Packed with time-saving tools and features, Gravity Forms is the only WordPress form management plugin you will ever need. Stop losing valuable leads and grow your business with Gravity.

envelope Post Status Excerpt (No. 8) — Gravity Forms 2.5, CC Coming to WP • Post Status design tips Grab the Newsletter

= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find(‘#gform_wrapper_3’);var is_confirmation = jQuery(this).contents().find(‘#gform_confirmation_wrapper_3’).length > 0;var is_redirect = contents.indexOf(‘gformRedirect(){‘) >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery(‘html’).css(‘margin-top’), 10) + parseInt(jQuery(‘body’).css(‘margin-top’), 10) + 100;if(is_form){jQuery(‘#gform_wrapper_3’).html(form_content.html());if(form_content.hasClass(‘gform_validation_error’)){jQuery(‘#gform_wrapper_3’).addClass(‘gform_validation_error’);} else {jQuery(‘#gform_wrapper_3’).removeClass(‘gform_validation_error’);}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery(‘#gform_wrapper_3’).offset().top – mt); }, 50 );if(window[‘gformInitDatepicker’]) {gformInitDatepicker();}if(window[‘gformInitPriceFields’]) {gformInitPriceFields();}var current_page = jQuery(‘#gform_source_page_number_3’).val();gformInitSpinner( 3, ‘https://cdn.poststatus.com/wp-content/plugins/gravityforms/images/spinner.gif’ );jQuery(document).trigger(‘gform_page_loaded’, [3, current_page]);window[‘gf_submitting_3’] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find(‘.GF_AJAX_POSTBACK’).html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery(‘#gform_wrapper_3’).replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery(‘#gf_3’).offset().top – mt);jQuery(document).trigger(‘gform_confirmation_loaded’, [3]);window[‘gf_submitting_3’] = false;}, 50);}else{jQuery(‘#gform_3’).append(contents);if(window[‘gformRedirect’]) {gformRedirect();}}jQuery(document).trigger(‘gform_post_render’, [3, current_page]);} );} );]]>

star Post Status Excerpt (No. 8) — Gravity Forms 2.5, CC Coming to WP • Post Status design tips Featured WordPress Job Openings

{“cart_token”:””,”hash”:””,”cart_data”:””}

3) { var type = ‘event’; var eventName = ‘timing_complete’; fieldsArray = { event_category : ‘Scroll Depth’, name : action, event_label : label, value : timing, non_interaction: 1 }; MonsterInsightsObject.sendEvent( type, eventName, fieldsArray ); } } function calculateMarks(docHeight) { return { ‘25%’ : parseInt(docHeight * 0.25, 10), ‘50%’ : parseInt(docHeight * 0.50, 10), ‘75%’ : parseInt(docHeight * 0.75, 10), /* Cushion to trigger 100% event in iOS */ ‘100%’: docHeight – 5 }; } function checkMarks(marks, scrollDistance, timing) { /* Check each active mark */ $.each(marks, function(key, val) { if ( $.inArray(key, cache) === -1 && scrollDistance >= val ) { sendEvent(‘Percentage’, key, scrollDistance, timing); cache.push(key); } }); } function rounded(scrollDistance) { /* Returns String */ return (Math.floor(scrollDistance/250) * 250).toString(); } function init() { bindScrollDepth(); } /* * Public Methods */ /* Reset Scroll Depth with the originally initialized options */ $.scrollDepth.reset = function() { cache = []; lastPixelDepth = 0; $window.off(‘scroll.scrollDepth’); bindScrollDepth(); }; /* Add DOM elements to be tracked */ $.scrollDepth.addElements = function(elems) { if (typeof elems == “undefined” || !$.isArray(elems)) { return; } $.merge(options.elements, elems); /* If scroll event has been unbound from window, rebind */ if (!scrollEventBound) { bindScrollDepth(); } }; /* Remove DOM elements currently tracked */ $.scrollDepth.removeElements = function(elems) { if (typeof elems == “undefined” || !$.isArray(elems)) { return; } $.each(elems, function(index, elem) { var inElementsArray = $.inArray(elem, options.elements); var inCacheArray = $.inArray(elem, cache); if (inElementsArray != -1) { options.elements.splice(inElementsArray, 1); } if (inCacheArray != -1) { cache.splice(inCacheArray, 1); } }); }; /* * Throttle function borrowed from: * Underscore.js 1.5.2 * http://underscorejs.org * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Underscore may be freely distributed under the MIT license. */ function throttle(func, wait) { var context, args, result; var timeout = null; var previous = 0; var later = function() { previous = new Date; timeout = null; result = func.apply(context, args); }; return function() { var now = new Date; if (!previous) previous = now; var remaining = wait – (now – previous); context = this; args = arguments; if (remaining

Source