🎉 欢迎访问GreasyFork.Org 镜像站!本镜像站由公众号【爱吃馍】搭建,用于分享脚本。联系邮箱📮

Greasy fork 爱吃馍镜像

Greasy Fork is available in English.

Shopify Enhancer

Enhance Shopify admin dashboard with third-party providers support

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

作者のサイトでサポートを受ける。または、このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==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==

(() => {
  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?.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,
  });
})();