Skip to content

Instantly share code, notes, and snippets.

View Daniel217D's full-sized avatar
🏠
Working from home

Daniil Dubchenko Daniel217D

🏠
Working from home
View GitHub Profile
@Daniel217D
Daniel217D / deploy.yml
Created February 28, 2024 11:46
Github action for deploying plugin to WordPress repository
name: Deploy to WordPress.org
on:
push:
tags:
- "*"
jobs:
tag:
name: New release
runs-on: ubuntu-latest
@Daniel217D
Daniel217D / svn_push.sh
Created September 4, 2023 20:05
Script for updating plugin at wordpress.org
#!/bin/bash
# Exit if any command fails.
set -e
# Define variables
PLUGIN_SLUG="test-plugin" # Replace with your plugin's slug
SVN_REPO="https://plugins.svn.wordpress.org/$PLUGIN_SLUG"
NEW_TAG="$1" # The new tag version (passed as a command-line argument)
@Daniel217D
Daniel217D / zip.sh
Created September 4, 2023 19:46
Script to build composer + npm project (WordPress plugin)
set -e #Скрипт не будет продолжать работу если возникнет ошибка
DIR=$(pwd)
BUILD_DIR="$DIR/build/test-plugin"
# Установить composer зависимости
# --optimize-autoloader для оптимизации автозагрузчика
# --no-dev игнорировать dev зависимости
# -q без вывода лишней информации
composer install --optimize-autoloader --no-dev -q
@Daniel217D
Daniel217D / install-wp-tests.sh
Last active July 9, 2023 10:00
install-wp-tests.sh for Windows
#!/usr/bin/env bash
if [ $# -lt 3 ]; then
echo "usage: $0 <db-name> <db-user> <db-pass> [db-host] [wp-version] [skip-database-creation]"
exit 1
fi
DB_NAME=$1
DB_USER=$2
DB_PASS=$3
@Daniel217D
Daniel217D / ReadMe.md
Created August 1, 2021 15:49
Зачем React нужны ключи (Keys), краткое наглядное объяснение. / Why React Needs Keys, a short visual explanation. (Ru)

Оригинал - twitter
Переведено при поддержке Devник

Каждый рендер похож на кадр в фильме. React не знает, что вы сделали со своими данными. Он видит только JSX из предыдущего рендера, а затем из следующего рендера. http://circles.map(c => <Circle color={c.color} />)

Расскажи мне, что случилось с кругами. Если вы посмотрите достаточно внимательно, вы поймете, что есть две разные возможные интерпретации того, что произошло!

  1. Может, второй и третий круги поменялись местами…
@Daniel217D
Daniel217D / woocommerce - get active account menu item
Created March 26, 2019 15:40
woocommerce - get active account menu item
function get_active_account_menu_item() {
global $wp;
$items = wc_get_account_menu_items();
$current = false;
foreach ($items as $endpoint => $label) {
// Set current item class.
$current = isset( $wp->query_vars[ $endpoint ] );
if ( 'dashboard' === $endpoint && ( isset( $wp->query_vars['page'] ) || empty( $wp->query_vars ) ) ) {
$current = true; // Dashboard is not an endpoint, so needs a custom check.
}
@Daniel217D
Daniel217D / woocommerce - minimum and maximum price
Last active September 9, 2023 21:02
woocommerce - get minimum and maximum price for current products
function get_filtered_price() {
global $wpdb;
$args = wc()->query->get_main_query();
$tax_query = isset( $args->tax_query->queries ) ? $args->tax_query->queries : array();
$meta_query = isset( $args->query_vars['meta_query'] ) ? $args->query_vars['meta_query'] : array();
foreach ( $meta_query + $tax_query as $key => $query ) {
if ( ! empty( $query['price_filter'] ) || ! empty( $query['rating_filter'] ) ) {
@Daniel217D
Daniel217D / javascript
Last active April 15, 2019 12:38
Fast input for number with plus and minus buttons
(function() {
function Btn(element, settings) {
return new Btn.prototype.init(element, settings);
}
Btn.prototype.init = function(element, settings) {
const defaults = {
min: 0,
max: 10,