Skip to content

Instantly share code, notes, and snippets.

View tivnet's full-sized avatar

Gregory Karpinsky tivnet

View GitHub Profile
@tivnet
tivnet / oop-procedural-benchmark.php
Created November 27, 2013 12:35
OOP vs. Procedural PHP Benchmark
<?php
/**
* OOP vs. Procedural PHP Benchmark
* @author tivnet
* @version 13.11.27
* Disclaimer: This is too simple, and does not prove anything. Just forget it. :-)
* My results on PHP 5.4 / Windows 8.1 / Apache 2.4 (all 64 bits, but who cares) :
* first 3 tests: same 3.1 to 3.4; the last test: 5.0 to 5.1
*/
header( 'Content-type: text/plain' );
@tivnet
tivnet / php
Created January 4, 2014 14:55
To let PHP recognize Cygwin paths, put this file to /usr/local/bin/php and chmod +x Originally published by http://stackoverflow.com/users/264395/aefxx here: http://stackoverflow.com/questions/12276946/composer-cygwin
#!/bin/bash
# Path to the PHP executable
php="/cygdrive/c/PHP/php.exe"
for ((n=1; n <= $#; n++)); do
if [ -e "${!n}" ]; then
# Converts Unix style paths to Windows equivalents
path="$(cygpath --mixed ${!n} | xargs)"
@tivnet
tivnet / save_post_action_example.php
Last active August 29, 2015 13:56
save_post action example
<?php
add_action( 'save_post', 'tivwp_save_post', 10, 3 );
/**
* Save the selected template info for the particular post
* @param int $post_id
* @param \WP_Post $post
* @param bool $update
* @wp-hook save_post
@tivnet
tivnet / woocommerce_category_list.sql
Created May 29, 2014 03:22
WooCommerce category list SQL query
--
-- @author Gregory Karpinsky, http://www.tiv.net/
-- @version 14.05.28
--
SELECT
tp.name Cat,
t.name Subcat
FROM
wp_term_taxonomy tt,
wp_terms t,
@tivnet
tivnet / woocommerce_fix_sorting_by_date.sql
Last active August 29, 2015 14:05
WooCommerce: SQL to fix sorting by date
--
-- When the product "post date" is incorrect
-- (for example, as a result of batch import-export)
-- this SQL will fake the date using the post_ID
--
-- @author Gregory Karpinsky, http://www.tiv.net/
-- @version 14.08.19
--
UPDATE wp_posts
@tivnet
tivnet / WooCommerce_product_IDs_by_stock_status_and_backorders.sql
Created August 26, 2014 00:19
SQL: WooCommerce product IDs by stock status and backorders
SELECT _stock, _stock_status, _backorders, GROUP_CONCAT( PID )
FROM (
SELECT
post_id AS PID,
meta_value AS _stock,
(
SELECT meta_value
FROM wp_postmeta
@tivnet
tivnet / SearchWP-patch-class.search.php
Created October 30, 2014 12:40
SearchWP - preserve posts_per_page and offset from original wp query
diff -rupN /tmp/searchwp/includes/class.search.php app/plugins/searchwp/includes/class.search.php
--- /tmp/searchwp/includes/class.search.php 2014-09-29 15:37:54.000000000 +0300
+++ app/plugins/searchwp/includes/class.search.php 2014-10-29 14:46:00.003012356 +0200
@@ -284,6 +284,13 @@ class SearchWPSearch {
$this->order = $args['order'];
$this->load_posts = is_bool( $args['load_posts'] ) ? $args['load_posts'] : true;
+ /** CHANGES BEGIN:
+ Check for offset argument, this allows more precise navigation */
+ if( isset( $args['offset'] ) && !empty( $args['offset'] ) ) {
@tivnet
tivnet / meta_box_cb-bug-demo.php
Last active August 29, 2015 14:08
meta_box_cb bug demo
<?php
/**
* Plugin Name: TIVWP Demo 28033
* Plugin URI: https://gist.github.com/tivnet/c99265e4884f7df5cb0f
* Description: Demonstrates WP bug <a href="https://core.trac.wordpress.org/ticket/28033">#28033</a>
* Version: 14.11.02
* Author: TIV.NET
* Author URI: http://www.tiv.net
* License: GPL2
* Copyright 2014 Gregory Karpinsky (tiv.net), All Rights Reserved
@tivnet
tivnet / g2s.php
Created July 3, 2015 11:16
Git to SVN for WordPress
#!/usr/local/bin/php -q
<?php
/**
* Git to SVN
* @author Gregory Karpinsky (@tivnet)
*/
/**
* Default values for $_SERVER, because we run as CLI
*/
@tivnet
tivnet / makepot--extract--entry_from_call.php
Last active June 8, 2016 01:48
Makepot: Ignore all strings that are not from our textdomain. `node_modules/grunt-wp-i18n/vendor/wp-i18n-tools/extract.php`
<?php
// .../node_modules/grunt-wp-i18n/vendor/wp-i18n-tools/extract.php
public function entry_from_call( $call, $file_name ) {
/**
* Ignore all strings that are not from our textdomain
*/
if ( $call['args'][ count( $call['args'] ) - 1 ] !== 'my-text-domain' ) {
return null;
}