Skip to content

Instantly share code, notes, and snippets.

View Garconis's full-sized avatar
🐞
Debugging

Jon Fuller Garconis

🐞
Debugging
View GitHub Profile
@Garconis
Garconis / zapier-asana-assign-subtask-of-parent-based-on-subtask-name.js
Last active August 21, 2023 22:03
Asana API + Zapier | find specific subtasks of a parent and then assign them
View zapier-asana-assign-subtask-of-parent-based-on-subtask-name.js
const res = await fetch('https://app.asana.com/api/1.0/tasks/' + inputData.parentTaskID + '/subtasks', {
headers: {
'Authorization': 'Bearer 1/1234'
}
});
// Sends a JSON response composed of the specified data
const body = await res.json();
// Grabs the "data" content of the response
const data = body.data;
@Garconis
Garconis / zapier-asana-find-all-subtasks.js
Created August 21, 2023 21:58
Asana API + Zapier | output all subtasks of a given task
View zapier-asana-find-all-subtasks.js
// this is wrapped in an `async` function
// you can use await throughout the function
var parentTaskID = inputData.parentTaskID ; // get the variable from the parentTaskID
// get the subtasks based on the parentTaskID
const res = await fetch('https://app.asana.com/api/1.0/tasks/' + parentTaskID + '/subtasks', {
method: 'GET',
headers: {
'Authorization': 'Bearer 1/2345'
}
@Garconis
Garconis / gravity-forms-hidden-field-prepend-append-value.php
Created May 25, 2023 20:21
Gravity Forms | Add a hidden field that pulls in value of another field and then prepends or appends additional text to it
View gravity-forms-hidden-field-prepend-append-value.php
<?php
// Change 6 on the following to your form id number.
add_action( 'gform_pre_submission_6', 'pre_submission_handler' );
function pre_submission_handler( $form ) {
// Change 145 to be the Hidden Field id number and 114_6 to the Last Name id number
// which you can get while inspecting the fields in the backend of the Gravity Form while editing it
$_POST['input_145'] = rgpost( 'input_114_6' ) . ' - Household';
}
@Garconis
Garconis / wordpress-impreza-accordion-shortcode-acf-repeater-field.php
Last active May 10, 2023 16:39
WordPress + Impreza | Create shortcode to output accordions based on ACF repeater fields
View wordpress-impreza-accordion-shortcode-acf-repeater-field.php
<?php
/* ACF Case Study Key Features accordion shortcode recreation, used within the Case Study page template */
// [fs_key_features_accordion]
function fs_sc_key_features_accordion( $atts ){
// begin output buffering
ob_start();
if( have_rows('cs_key_website_features') ) {
@Garconis
Garconis / zapier-asana-search-tasks.js
Created April 28, 2023 17:07
Asana API + Zapier | search for a task with criteria and return GID
View zapier-asana-search-tasks.js
const res = await fetch('https://app.asana.com/api/1.0/workspaces/9876543/tasks/search?projects.all=1204442834902858&sections.any=1204442834902861,1204442834902862&completed=false&text=' + inputData.foundText + '&opt_fields=gid', {
headers: {
'Authorization': 'Bearer 0/1234567'
}
});
// Sends a JSON response composed of the specified data
const body = await res.json();
// Grabs the "data" content of the response
const data = body.data;
@Garconis
Garconis / zapier-asana-duplicate-task.js
Created April 27, 2023 18:18
Asana API + Zapier | Duplicate a task via API
View zapier-asana-duplicate-task.js
// Duplicate the Asana FS:Audit task template that we made (note, it's not a "real" Task Template, but just a straggling task that sits in the project) and set the name based on the task name of the CRM task that got completed earlier.
// get taskName from the custom fields above
var taskTitle = inputData.taskName;
var taskID = "555555555"; // task to duplicate
// notes: https://forum.asana.com/t/now-available-project-and-task-duplication/49371
let body = {
"data": {
"include": [
"assignee",
"attachments",
@Garconis
Garconis / gravity-forms-gclid-params-on-submit.js
Created March 20, 2023 17:38
Gravity Forms | Log a parameter value to local storage and send with Gravity Form entry, such as Google Ads GCLID or other params
View gravity-forms-gclid-params-on-submit.js
// get parameters of URL
function getParam(p) {
var match = RegExp('[?&]' + p + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
// set expiration date
function getExpiryRecord(value) {
var expiryPeriod = 90 * 24 * 60 * 60 * 1000; // 90 day expiry in milliseconds
var expiryDate = new Date().getTime() + expiryPeriod;
@Garconis
Garconis / change-woocommerce-giftcard-button-cta-url-in-email.php
Last active March 14, 2023 16:13 — forked from melek/gist:4bf187bfb85faf3864069777ea6d9cc3
WooCommerce | Change CTA URL for WooCommerce Gift Card Emails
View change-woocommerce-giftcard-button-cta-url-in-email.php
<?php
add_filter('woocommerce_gc_email_received_action_button_url', 'custom_giftcard_cta_url', 10, 1);
function custom_giftcard_cta_url($url) {
return get_home_url();
}
@Garconis
Garconis / asana-zapier-update-task-custom-fields.js
Last active March 7, 2023 22:23
Asana | Update custom fields of a task when using Zapier code
View asana-zapier-update-task-custom-fields.js
// this is wrapped in an `async` function
// you can use await throughout the function
var adCampaign = inputData.adCampaign; // get the variable from the adCampaign
var adKeyword = inputData.adKeyword; // get the variable from the adKeyword
var taskID = inputData.taskID; // get the variable from the taskID
var finalAdKeyword = "";
if ( (adKeyword == 'None') || (adKeyword == 'No Terms') || (adKeyword == '[channeldrilldown3]')) {
var finalAdKeyword = "";
}
@Garconis
Garconis / zapier-code-to-create-asana-status-update-for-project-item.js
Created March 3, 2023 22:20
Asana | Create a Status Update to the Project/Portfolio item
View zapier-code-to-create-asana-status-update-for-project-item.js
// this is wrapped in an `async` function
// you can use await throughout the function
// https://developers.asana.com/reference/createstatusforobject
// get parentID (the ID of the unique project)
var parentID = inputData.parentID;
let body = {
"data": {