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 / getLastFridayOfMonth.php
Created October 30, 2024 01:23
getLastFridayOfMonth for Query
<?php
function getLastFridayOfMonth($year, $month) {
// Start with the last day of the month
$lastDay = new DateTime("$year-$month-01");
$lastDay->modify('last day of this month');
// Find the last Friday before or on the last day of the month
if ($lastDay->format('N') < 5) {
// If the last day is before Friday, subtract days to reach the last Friday
$lastDay->modify('last Friday');
@vfontjr
vfontjr / frm_entry_meta_example.php
Last active October 21, 2024 12:28
Updating From Entry Meta
<?php
function add_or_update_entry_meta( $entry_id, $field_key, $value ){
/* convert field_key to field_id for software portability */
$field_id = FrmField::get_id_by_key($field_key);
/* check for existing value */
$field_val_exists = FrmProEntriesController::get_field_value_shortcode(array('field_id' => $field_id, 'entry' => $entry_id));
/* add or update as appropriate */
<?php
function create_init_field_vars_array( $form_key ) {
global $wpdb;
/* initialize the variables for the formidable tables */
$wpdb_prefix = $wpdb->prefix;
$frm_fields = $wpdb_prefix . 'frm_fields';
$form_id = FrmForm::get_id_by_key( $form_key );
$new_key = str_replace('-', '_', $form_key);
@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"];