Skip to content

Instantly share code, notes, and snippets.

View luistinygod's full-sized avatar

Luis Godinho luistinygod

  • Dekode
  • Porto, Portugal
View GitHub Profile
@luistinygod
luistinygod / tinygod-recover-roles.php
Created May 24, 2020 17:14
WordPress Plugin: Restores all the default roles and caps in the WordPress
<?php
/**
* Recover or Reset the default WordPress user roles and caps
* Install it as a WordPress plugin, activate it and deativate. That's it.
*
* @wordpress-plugin
* Plugin Name: tinyGod Recover User Roles
* Plugin URI:
* Author: luistinygod
* Author URI: https://tinygod.pt
@luistinygod
luistinygod / redirect.php
Last active April 14, 2022 01:37
GravityView: redirect a user to a different location after updating an entry
<?php
/**
* Redirect the visitor to the single entry view after updating the entry
*/
function my_gv_redirect_after_update_to_single_entry_view( $form, $entry_id ) {
?>
<script>
jQuery(document).ready( function() {
window.location.replace( window.location.href.split('?')[0] );
});
@luistinygod
luistinygod / gv-custom-role-filter.php
Last active October 29, 2021 12:09
GravityView extend the Advanced Filter to a certain users' role
<?php
/**
* When using the Advanced Filter extension to filter entries to show just the ones created by the user logged-in
* BUT remove the restriction to a certain role of users ( administrators or editors )
*
* Replace the following to your own values:
* - REPLACE_BY_VIEW_ID, use the view id where this logic applies
* - REPLACE_BY_THE_ROLE, use 'administrator' or 'editor' or your own custom role
*
@luistinygod
luistinygod / gist:9dce30ca1fd146dd31bc
Last active May 1, 2020 16:13
GravityView: Removes Custom Content field content in case a certain entry's field is empty
<?php
/** Modify the content returned from the Custom Content field */
add_filter( 'gravityview/fields/custom/content_before', 'my_gv_custom_content_before', 10, 1 );
/**
* Removes the custom content field's content in case a certain entry field is empty
* Replace the MY_FIELD_ID by the field id (check it on the Gravity Forms form definition)
*
* @param string $content Custom Content field content
* @return string
@luistinygod
luistinygod / grid-view.php
Created August 18, 2015 15:14
GravityView: Convert a list view into a grid style (3-col)
<?php
/**
* Add the `gv-grid` class to the list container
*/
function my_gv_list_container( $classes ) {
return $classes . ' gv-grid';
}
add_filter( 'gravityview/render/container/class', 'my_gv_list_container', 10, 1 );
/**
@luistinygod
luistinygod / cache-patterns-in-wordpress.php
Last active April 30, 2020 04:57
WordPress: Cache patterns for complex queries
<?php
/**
* Retrieve a WP_Query object
*/
function my_complex_query( $refresh = false ) {
$last_changed = wp_cache_get_last_changed( 'my_group_my_post_type' );
$cache_key = 'my_result'.md5( $param1 . $param2 ).$last_changed;
@luistinygod
luistinygod / data-persist.js
Last active February 2, 2020 09:45
Simple Vuex plugin to keep data across pages
const persistInterval = 24*60*60*1000; // 1 day
const plugin = store => {
store.subscribe( ( mutation, state ) => {
// Save to local storage all the changes made in the cart state
if( 'shop/addToCart' === mutation.type || 'shop/removeFromCart' === mutation.type ) {
let record = { data: state.shop.cart, ts: new Date().getTime() + persistInterval };
try {
@luistinygod
luistinygod / featured-posts-pattern-helper-functions.php
Last active June 1, 2018 00:30
WordPress: Manage featured posts using WordPress menus
@luistinygod
luistinygod / gist:7594392d3a474cf93df0
Last active November 7, 2016 18:04
GravityView: Show the result of a calculation using a Custom Content field
<?php
/** Modify the content returned from the Custom Content field */
add_filter( 'gravityview/fields/custom/content_before', 'my_gv_custom_content_before', 10, 1 );
/**
* Replaces the %CALC% placeholder by the result of a calc operation between entries' fields
*
* @param string $content Custom Content field content
* @return string
*/
@luistinygod
luistinygod / maps-coordinates.php
Created September 2, 2015 12:32
GravityView Maps Premium View: Specify the Latitude and Longitude form field IDs (to be used instead of the address field)
<?php
/**
* Use the cordinates (Latitude and Longitude) instead of the address to position the markers over the Maps
* Replace 'MY_LATITUDE_FIELD_ID' and 'MY_LONGITUDE_FIELD_ID' by the form field ids containing the latitude and longitude
* @param array $fields Gravity Forms fields IDs containing the latitude and longitude
* @param GravityView_View object $view Current View object
*/
function my_gv_maps_lat_long_fields( $fields, $view ) {
return array( 'MY_LATITUDE_FIELD_ID', 'MY_LONGITUDE_FIELD_ID' );