Skip to content

Instantly share code, notes, and snippets.

View vfontjr's full-sized avatar

Victor M. Font Jr. vfontjr

View GitHub Profile
@vfontjr
vfontjr / splitCSV.php
Created July 20, 2024 22:53
Split CSV Files into smaller chunks
<?php
/*
This function was created by ChatGPT and does the following:
1. Checks if the input file exists.
2. Opens the input CSV file for reading.
3. Ensures the output directory exists, creating it if necessary.
4. Reads the header row of the CSV.
5. Loops through each row of the input CSV file.
6. Creates a new output file every 400 rows, including the header row.
<script>
/* install this script in the after fields section on the
* form's CustomizeHTML page.
*/
jQuery(document).ready(function($) {
"use strict";
/**
* original code found on StackExchange
* addmonths: function used to calculate renewal date
* date {dateStr}
@vfontjr
vfontjr / user_role_add-remove.php
Last active April 19, 2024 19:41
Masterminds user role add/remove
<?php
/**
* masterminds_update_user_roles function.
*
* This is the main callback function for the
* frm_after_create_entry and frm_after_update_entry actions
* It's purpose is to process Developers Directory registrations
* and grant various WordPress roles based on user responses
*
* @access public
.frm-star-group .star-rating {
margin-right: .25rem !important;
}
.frm-star-group input + label::before, .frm-star-group .star-rating::before {
font-family: 'Font Awesome 6 Pro' !important;
content: '' !important;
color: var(--mastermind-primary-color) !important;
}
.frm-star-group:not(.frm-star-hovered) input[type="radio"]:checked + label::before, .frm-star-group input + label:hover::before, .frm-star-group:hover input + label:hover::before, .frm-star-group .star-rating-on::before, .frm-star-group .star-rating-hover::before {
font-weight: 900 !important;
<?php
/* use this function for populating entries where
* dynamic lookup entry ids are required
*/
function masterminds_get_dynamic_field_entry_id_by_value( $field_id, $value ) {
global $wpdb;
$frm_item_metas_table = $wpdb->prefix . 'frm_item_metas';
$sql = "SELECT item_id FROM `{$frm_item_metas_table}` WHERE field_id = '{$field_id}' AND meta_value = '{$value}'";
return $wpdb->get_var($sql);
}
<?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';
}
<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"];
@vfontjr
vfontjr / count_form_entries_shortcode.php
Created January 6, 2023 15:06
Count All Fom Entries
<?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 January 4, 2023 12:25
Count Formidable Entries by User Role
<?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
<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++) {