-
Notifications
You must be signed in to change notification settings - Fork 5
/
shopify-enhancer.user.js
54 lines (44 loc) · 1.95 KB
/
shopify-enhancer.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// ==UserScript==
// @name Shopify Enhancer
// @namespace https://github.com/sparanoid/userscript
// @supportURL https://github.com/sparanoid/userscript/issues
// @version 2024-10-03
// @description Enhance Shopify admin dashboard with third-party providers support
// @author Sparanoid
// @license AGPL
// @compatible chrome 80 or later
// @compatible edge 80 or later
// @compatible firefox 74 or later
// @compatible safari 13.1 or later
// @match https://admin.shopify.com/store/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=shopify.com
// @grant none
// @downloadURL https://update.greasyfork.org/scripts/501654/Shopify%20Enhancer.user.js
// @updateURL https://update.greasyfork.org/scripts/501654/Shopify%20Enhancer.meta.js
// ==/UserScript==
(function() {
'use strict';
const wrapperObserver = new MutationObserver((mutationsList, observer) => {
for (const mutation of mutationsList) {
if (mutation.type === 'childList') {
[...mutation.addedNodes].map(item => {
// console.log('mutation wrapper added', item);
// Main wrapper
if (item.classList?.contains('Polaris-Page') || item?.id === 'AppFrame') {
console.log('Main wrapper detected', item);
const telElement = item?.querySelector('a[href^="tel:"]');
const telStr = telElement?.textContent?.replaceAll(' ', '').replaceAll('+86', '').replace('tel:', '');
if (telElement && telStr) {
const link = document.createElement('a');
link.setAttribute('href', `https://rouzao.com/orders/list?mobile=${telStr}`);
link.setAttribute('target', '_blank');
link.textContent = 'Search in Rouzao';
telElement.parentElement.appendChild(link);
}
}
})
}
}
});
wrapperObserver.observe(document.body, { attributes: false, childList: true, subtree: true });
})();