Skip to content

Instantly share code, notes, and snippets.

Avatar

Victor M. Font Jr. vfontjr

View GitHub Profile
View wpdb-determine_charset.php
<?php
public function determine_charset( $charset, $collate ) {
if ( ( $this->use_mysqli && ! ( $this->dbh instanceof mysqli ) ) || empty( $this->dbh ) ) {
return compact( 'charset', 'collate' );
}
if ( 'utf8' === $charset && $this->has_cap( 'utf8mb4' ) ) {
$charset = 'utf8mb4';
}
View display_day_name.js
<script>
jQuery(document).ready(function($) {
"use strict";
/* change field_s32q2 to the id of your date input field
* use your browser's inspection tool to verify the id spelling
*/
$('#field_s32q2').on('change', function() {
/* create a constant reference to a day name values */
const days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
View count_form_entries_shortcode.php
<?php
add_shortcode('count_form_entries', 'count_form_entries_callback');
function count_form_entries_callback( $atts ) {
$count = 0;
if ( !empty( $atts ) ) {
$atts = shortcode_atts( array(
'frm_id' => '0',
'frm_key' => ''
), $atts, 'count_form_entries' );
@vfontjr
vfontjr / count-by-role.php
Created Jan 4, 2023
Count Formidable Entries by User Role
View count-by-role.php
<?php
add_action('frm_display_form_action', 'check_entry_count', 8, 3);
function check_entry_count($params, $fields, $form) {
global $user_ID;
/* get the current user object */
$current_user = wp_get_current_user();
remove_filter('frm_continue_to_new', '__return_false', 50);
if( $form->id == 5 and !is_admin() ) { //replace 5 with the ID of your form
View split-and-sum-values.js
<script>
jQuery(document).ready(function($) {
"use strict";
$('#field_xxx').on('change', function() {
var total = 0;
if ( $(this).val().length > 0 ) {
const split_vals = $(this).val().split(", ");
var total = 0;
for (var i = 0; i < split_vals.length; i++) {
View accessibility-generator-view-full-source.html
[if w3cfrm_post_content_type equals="Complete"][if w3cfrm_post_content_format equals="Block"]
<!-- wp:html --><!--
/* Formidable Forms Accessibility Statement Generator
* By Victor Font Consulting Group, LLC
*
* https://formidable-masterminds.com/accessibility-statement-generator/
*
* Author: Victor M. Font Jr.
* https://victorfont.com
* https://formidable-masterminds.com
View firefox-default-value-bug-the-work-around.js
<script>
jQuery(document).ready(function($) {
"use strict";
/* self-executing function */
( function($) {
/* this function is a workaround for an apparent Firefox bug
* where the default values are sometimes not being displayed
* the test form works Safari, Chrome, and Firefox Developer Edition.
View columnize-dynamic-radio-button-fields.js
<script>
jQuery(document).ready(function($) {
"use strict";
/* add "display: grid" to field's div.frm_opt_container
* change frm_field_1142_container to the id of your field's container
*/
$('div#frm_field_1142_container > div.frm_opt_container').css('display', 'grid');
/* loop through each radio button to assign it to a grid column
* change wild card selector [id^="frm_radio_1142-"] to the id
View interactive-chart.js
<script>
jQuery(document).ready(function($) {
"use strict";
/* this script demonstrates a prototype integration for
* to display dynamic ChartJS graphs from Formidable Forms data.
*/
function masterminds_calc_fv( deposit_value, interest_rate, monthly_contribution ) {
const values = [deposit_value];
var chart_years = 30,
View display-range-slider-as-currency.js
/* this code is a multi-selector variation of the example found
* in Formidable's knowledge base article:
* https://formidableforms.com/knowledgebase/javascript-examples/#kb-format-a-slider-field-value-as-a-currency
*
* it uses the Intl.NumberFormat function that's built into JavaScript. No external libraries required.
* to learn more about Intl.NumberFormat see:
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat
*/
$("#field_id1 ~ .frm_range_value, #field_id2 ~ .frm_range_value").on('DOMSubtreeModified' , function() {
var field_id = $(this)[0].previousSibling.id,