Skip to content

Instantly share code, notes, and snippets.

View codearachnid's full-sized avatar
🎯
Focusing

Timothy Wood codearachnid

🎯
Focusing
View GitHub Profile
@codearachnid
codearachnid / acf_field_gravity_forms_list.php
Last active March 21, 2024 18:12
Populate ACF field with list of active Gravity Forms
<?php
/***
* Populate ACF field (list_gravity_forms) with list of active Gravity Forms
***/
add_filter( 'acf/load_field/name=list_gravity_forms', function( $field ) {
$forms = GFFormsModel::get_forms();
// Filter active forms
$forms = array_filter( $forms, function( $form ) {
@codearachnid
codearachnid / gform_entry_page_replay_webhooks.php
Created February 14, 2024 21:56
Gravity Forms: Webhooks Entry Caller
<?php
// add meta boxes on entry detail
add_filter('gform_entry_detail_meta_boxes', function( $meta_boxes ){
// check that Webhooks class is available
if( class_exists('GF_Webhooks') ){
$meta_boxes['webhooks'] = [
'title' => 'Webhooks',
@codearachnid
codearachnid / gppa-explode-commas-as-selected-choices.php
Last active January 26, 2024 17:45
This is the rework of the explode commas into selected choices as there are changes in how gravitywiz populate anything now behaves. https://github.com/gravitywiz/snippet-library/blob/master/gp-populate-anything/gppa-explode-commas-as-selected-choices.php
/**
* Gravity Perks // Populate Anything // Explode Commas into Selected Choices
* https://gravitywiz.com/documentation/gravity-forms-populate-anything/
*
* Plugin Name: GPPA Explode Commas into Selected Choices
* Plugin URI: https://gravitywiz.com/documentation/gravity-forms-populate-anything/
* Description: Convert comma-delimited values into selected choices when populated into a choice-based field.
* Author: Gravity Wiz
* Version: 0.1
* Author URI: https://gravitywiz.com
<?php
// The field accepts a value with this structure
$value = [
'address' => '123 Example St, Townsville XYZ 1234, Country',
'lat' => - 38.1486228,
'lng' => 144.360414,
'zoom' => 14,
'place_id' => 'Ei0xMjMgTW9vcmFib29sIFN0LCBHZWVsb25nIFZJQyAzMjIwLCBBdXN0cmFsaWEiMBIuChQKEgmX0JaIHBTUahFyH_LC9sYD8hB7KhQKEglDz-DYDxTUahECZY8QisCjzg',
'street_number' => 123,
<?php
// The field accepts a value with this structure
$value = [
'address' => '123 Example St, Townsville XYZ 1234, Country',
'lat' => - 38.1486228,
'lng' => 144.360414,
'zoom' => 14,
'place_id' => 'Ei0xMjMgTW9vcmFib29sIFN0LCBHZWVsb25nIFZJQyAzMjIwLCBBdXN0cmFsaWEiMBIuChQKEgmX0JaIHBTUahFyH_LC9sYD8hB7KhQKEglDz-DYDxTUahECZY8QisCjzg',
'street_number' => 123,
@codearachnid
codearachnid / vuejs-actions-filters.md
Last active May 5, 2023 18:33
A recommendation on building actions/filters management similar to WordPress within a Vuejs (3) app.

VueJS (3) Action + Filters

This is a proposal to extend a compiled Vuejs application at runtime by adding actions and filters. This would allow for permitting functional extension to the data models/patterns or runtime executions of the application with discrete injection points by the development team. The purpose is to allow extensibility of functionality or filtering of data that the original application may not have considered or leveraged due to constraints. This concept is a potential benefit/risk because it gives discrete exposure to aspects of the application during runtime. By exposing controlled points during runtime for global access into the vuejs application this allows other UI frameworks within the same global space an opportunity to hook into application based api with promise driven callbacks.

[Sequence diagram for reference](https://viewer.diagrams.net/?tags=%7B%7D&amp;highlight=0000ff&amp;edit=_blank&amp;layers=1&amp;nav=1&amp;title=vuejs-actions-filters.drawio#R%3Cmxfile%3E%3Cdiagram%20name%3D%22Overvi

@codearachnid
codearachnid / ninja_table_raw_sql_placeholders.php
Created March 10, 2023 04:07
Improve the Ninja Tables admin experience by hooking into `ninja_table_raw_sql_placeholders` filter to add additional placeholders while in admin to allow queries to run in psuedo-mode.
<?php
/**
* hook into `ninja_table_raw_sql_placeholders` filter to add additional placeholders
* while in admin to allow queries to run in psuedo-mode
* @param array $filter
*/
add_filter('ninja_table_raw_sql_placeholders', function($filter){
if( is_admin() ){
/**
* these should already be set passing into this filter
@codearachnid
codearachnid / ninjatable-rest-api.php
Created March 10, 2023 00:45
Expose Ninja Table data as JSON via REST API.
<?php
/*
* Code snippet to expose ninja table data as JSON via REST API
* Example URL: https://yourdomain.com/wp-json/ninjatable/v1/table/#
* In this working example you should enable authentication to protect your data
* example is contained in `get_items_permissions_check`
* Route logic sourced from https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/
*/
add_action('rest_api_init', function () {
@codearachnid
codearachnid / _notes.md
Last active March 8, 2023 21:56
Gravity Forms: Add "other" option to checkboxes

This is a hacked in way of enabling "other" options to the Gravity Forms Checkbox Field https://docs.gravityforms.com/checkboxes/. Instead of creating a new field as a clone of checkbox or leveraging the built in class hooks to filter the processing I felt it would be better performance to directly modify the core GF logic in hopes they will adopt this in a future release. An example of this is seen like this !Screenshot

The status of these changes will affect the following areas

  • Changes were made against GF Version: 2.7.2
  • I have marked changed areas in these files with a comment Code4OtherChoice it's kludgy but worked for me to update the files as needed during update comparisons.
  • Validation works if the user has not changed the default value when selecting other
  • Validation works if no fields on form are selected
  • "Other" value saves successfull
@codearachnid
codearachnid / .htaccess
Created March 8, 2023 02:20
Convert WordPress /wp-admin/admin-ajax.php to /api
RewriteRule ^api$ /wp-admin/admin-ajax.php [L]