您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Enhance Shopify admin dashboard with third-party providers support
- // ==UserScript==
- // @name Shopify Enhancer
- // @namespace https://github.com/sparanoid/userscript
- // @supportURL https://github.com/sparanoid/userscript/issues
- // @version 2025-05-04
- // @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
- // ==/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);
- // Look for spans containing phone numbers
- const phoneSpans = item?.querySelectorAll('span.Polaris-Text--root');
- if (phoneSpans && phoneSpans.length > 0) {
- phoneSpans.forEach(span => {
- const text = span.textContent?.trim();
- // Check if text starts with +86
- if (text && text.startsWith('+86')) {
- // Check if we already added the link to this span
- if (!span.nextElementSibling || !span.nextElementSibling.classList.contains('rouzao-link')) {
- // Extract phone number
- const telStr = text.replaceAll(' ', '').replaceAll('+86', '');
- // Create link
- const link = document.createElement('a');
- link.setAttribute('href', `https://rouzao.com/orders/list?mobile=${telStr}`);
- link.setAttribute('target', '_blank');
- link.setAttribute('class', 'rouzao-link');
- link.textContent = 'Search in Rouzao';
- link.style.marginLeft = '0.5em';
- // Insert link after the span
- span.parentElement.insertBefore(link, span.nextSibling);
- }
- }
- });
- }
- }
- })
- }
- }
- });
- wrapperObserver.observe(document.body, { attributes: false, childList: true, subtree: true });
- })();