Skip to content

Instantly share code, notes, and snippets.

View webdevs-pro's full-sized avatar

Alex Ishchenko webdevs-pro

View GitHub Profile
@webdevs-pro
webdevs-pro / index.html
Created May 7, 2021 06:18
Swiper carousel with thumbnails (Elementor)
<script>
function defer(method) {
if (window.jQuery) {
method();
} else {
setTimeout(function() { defer(method) }, 50);
}
}
/* Copyright (c) 2017 Haggai Nuchi
Available for use under the MIT License:
https://opensource.org/licenses/MIT
*/
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
toolbarbutton#alltabs-button {
-moz-binding: url("userChrome.xml#js");
}
@webdevs-pro
webdevs-pro / webview.js
Last active November 12, 2024 07:09
Ferdium Notion receipt webview.js
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : { default: obj };
}
const _path = _interopRequireDefault(require('path'));
module.exports = Ferdium => {
const getMessages = () => {
let direct = 0;
const badgeDiv = document.querySelector(
@webdevs-pro
webdevs-pro / keys.ahk
Created October 23, 2024 04:18
My AHK skript
#F1::
SetInputLang(0x0409)
Sleep, 100
SoundPlay, %A_WinDir%\Media\Speech On.wav
ToolTip, EN
SetTimer, RemoveToolTip, -1000
Return
#F2::
@webdevs-pro
webdevs-pro / config.json
Created October 23, 2024 04:10
Windhawk taskbar Styler Mod config
{"theme":"","controlStyles[0].target":"Taskbar.TaskListLabeledButtonPanel@RunningIndicatorStates > Rectangle#RunningIndicator","controlStyles[0].styles[0]":"Height=2","resourceVariables[0].variableKey":"","resourceVariables[0].value":"","controlStyles[0].styles[1]":"Margin=2,0,2,-4","controlStyles[1].target":"taskbar:TaskListLabeledButtonPanel@RunningIndicatorStates > muxc:ProgressBar#ProgressIndicator > Grid#LayoutRoot","controlStyles[1].styles[0]":"Height=2","controlStyles[2].target":"taskbar:TaskListLabeledButtonPanel@RunningIndicatorStates > muxc:ProgressBar#ProgressIndicator","controlStyles[2].styles[0]":"Margin=2,0,2,-4"}
@webdevs-pro
webdevs-pro / index.php
Created December 5, 2019 12:08
ACF confirm password validation
<?php
add_filter('acf/validate_value/name=user_password_confirm', 'my_validated_password_filter', 10, 4);
function my_validated_password_filter($valid, $value, $field, $input) {
if (!$valid) {
return $valid;
}
// field key of the field you want to validate against
$password_field = 'field_5de8dff728aa2';
if ($value != $_POST['acf'][$password_field]) {
$valid = 'Does Not Match Password';
@webdevs-pro
webdevs-pro / page-update.php
Created October 3, 2021 18:02
Elementor data widget controls updater
<?php
function update_controls( $elements ) {
$new_elements = array();
foreach ( $elements as $element_index => $element ) {
foreach ( $element as $key => $value ) {
if ( $key == 'elements' && ! empty( $value ) ) {
$new_elements[$element_index][$key] = update_controls( $value );
@webdevs-pro
webdevs-pro / index.php
Created August 29, 2023 06:41
PHP Function to Reorder Array Elements Based on a Template Array and a Custom Comparison Key
<?php
$value = [
[
'attribute_type' => 'pa_merchant',
'pa_merchant' => [ 305 ],
],
[
'attribute_type' => 'pa_brand',
'pa_brand' => [ 692 ],
],
<?php
// MS Dynamic tags
add_action( 'elementor/dynamic_tags/register_tags', function( $dynamic_tags ) {
// conditional archive title (TEXT)
class MS_Custom_Archive_Title_Tag extends \Elementor\Core\DynamicTags\Tag {
public function get_name() {
return 'MS_Custom_Archive_Title_Tag';
}
public function get_categories() {
@webdevs-pro
webdevs-pro / index.php
Created January 21, 2023 21:52
WooCommerce remove outofstock products from related
add_filter( 'woocommerce_related_products', 'exclude_oos_related_products', 10, 3 );
function exclude_oos_related_products( $related_posts, $product_id, $args ){
$out_of_stock_product_ids = (array) wc_get_products( array(
'status' => 'publish',
'limit' => -1,
'stock_status' => 'outofstock',
'return' => 'ids',
) );
$exclude_ids = $out_of_stock_product_ids;