=== GSheet Tables ===
Contributors: doublecracker
Tags: google-sheets, spreadsheet, table, directory, data-display
Requires at least: 5.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.13
Last updated: 2026-05-17 21:48 JST
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Create searchable WordPress tables and directories from Google Sheets, with filters, sorting, pagination, CSV export, and links.

== Description ==

GSheet Tables turns a public Google Sheet into a searchable, sortable WordPress table. It is useful for member directories, store lists, clinic or pharmacy lists, facility directories, event lists, product catalogs, document indexes, and any data that is easier to maintain in a spreadsheet.

Update your Google Sheet and the table on your WordPress site can show the latest data without rebuilding the page manually. Site owners can manage the source data in Google Sheets, while visitors get a clean table with filters, sorting, pagination, and CSV export.

The plugin uses public CSV export, so there are no Google API keys, OAuth screens, service accounts, or quota setup steps. If your team already manages data in Google Sheets, GSheet Tables keeps the WordPress side simple.

You can also make text clickable by entering links in CSV-friendly formats like:
`Label|URL` or `Label (URL)`.

= Good for =

* Member directories and association lists
* Store, branch, clinic, pharmacy, or facility directories
* Event schedules and seminar lists
* Product, price, or service tables
* Document indexes and downloadable resource lists
* Internal data lists maintained by non-technical staff in Google Sheets

= Key Features =

* **Google Sheets integration**
  * Display data by providing a public spreadsheet URL
  * Tables update automatically when the sheet changes

* **Real-time filtering**
  * Column-level filters for quick narrowing
  * AND search across multiple columns
  * Partial or exact match modes

* **Sorting**
  * Click headers to sort (ascending/descending)
  * Automatic numeric column detection
  * Sort indicators

* **Pagination**
  * Choose items per page (10, 25, 50, 100, all)
  * Page number navigation
  * Previous/Next controls

* **CSV export**
  * Export filtered and sorted data
  * UTF-8 BOM CSV for Excel compatibility
  * Export visible columns only

* **Link rendering (CSV-friendly)**
  * Plain URLs are clickable
  * `Label|URL` or `Label (URL)` formats for clickable text
  * Japanese phone numbers (e.g. `0463-25-1377`) are auto-linked with `tel:` for tap-to-call on mobile
  * `HYPERLINK()` and rich-text links are not available in CSV

* **Custom styling**
  * Border styles (theme, horizontal, vertical, all, none)
  * Border width
  * Header/cell font sizes
  * Color settings (header bg/text, cell bg/text, hover bg)
  * Custom CSS
  * Theme style inheritance by default

* **Admin features**
  * Table creation and management
  * Default filters
  * Visible column selection
  * Advanced filters (OR, numeric range, date range)
  * Live preview

= Use Cases =

* Data directories
* Event listings
* Product catalogs
* Member lists
* Document indexes
* News lists
* Statistics tables
* Any dataset managed in Google Sheets

= Security =

* Nonce validation for all AJAX requests
* Proper capability checks for admin features (`manage_options`)
* Sanitization of all user input
* Proper output escaping

== Installation ==

= 基本的なインストール手順 =

1. WordPress管理画面にログイン
2. 「プラグイン」→「新規追加」に移動
3. 「GSheet Tables」を検索
4. 「今すぐインストール」をクリック
5. インストール後、「有効化」をクリック

= 手動インストール =

1. プラグインのZIPファイルをダウンロード
2. WordPress管理画面の「プラグイン」→「新規追加」→「プラグインのアップロード」に移動
3. ZIPファイルをアップロードしてインストール
4. 「有効化」をクリック

= 初回セットアップ =

1. WordPress管理画面の「GSheet Tables」メニューに移動
2. 「新規追加」をクリック
3. テーブル名を入力
4. GoogleスプレッドシートのURLを入力（公開設定必須）
5. 「保存」をクリック
6. ショートコード `[gsheet_table id="1"]` をコピーして、投稿やページに貼り付け

== Frequently Asked Questions ==

= Googleスプレッドシートを公開設定にするには？ =

1. Googleスプレッドシートを開く
2. 「共有」ボタンをクリック
3. 「リンクを知っている全員」に変更
4. 「閲覧者」権限を選択
5. 「完了」をクリック

= フィルター入力欄を非表示にできますか？ =

はい、管理画面のテーブル編集ページで「フィルター入力欄を非表示」オプションを有効にできます。

= 表示する列を指定できますか？ =

はい、管理画面のテーブル編集ページで「表示する列」に列番号をカンマ区切りで指定できます（例: `1,2,3,4,5`）。

= デフォルトのフィルター条件を設定できますか？ =

はい、管理画面のテーブル編集ページで「デフォルトフィルター」を設定できます。列番号または列名で指定可能です。

= カスタムスタイルを設定できますか？ =

はい、管理画面のテーブル編集ページで「カスタムスタイル設定」から、罫線、文字サイズ、色などを設定できます。また、カスタムCSSも入力可能です。

= Why not use Google Drive/Sheets API? =

To keep setup simple for site owners, this plugin uses public CSV export.  
That means no API keys, OAuth consent screens, or quota management are required.

= Can I use HYPERLINK() or rich-text links from Sheets? =

CSV export does not include the underlying URL for `HYPERLINK()` or rich-text links.  
Use a URL column or `Label|URL` / `Label (URL)` to display clickable links.

= レスポンシブデザインに対応していますか？ =

はい、モバイルデバイスでも適切に表示されるようにレスポンシブデザインに対応しています。

== Screenshots ==

1. 管理画面：テーブル一覧
2. 管理画面：テーブル編集（基本設定）
3. 管理画面：テーブル編集（フィルター設定）
4. 管理画面：テーブル編集（スタイル設定）
5. フロントエンド：テーブル表示（フィルター付き）
6. フロントエンド：ソート機能
7. フロントエンド：ページネーション

== Changelog ==

= 1.0.13 =
* Auto-link Japanese phone numbers in table cells with `tel:` URLs so visitors can tap to call on mobile devices.
* Do not open `tel:` and `mailto:` links in a new browser tab.

= 1.0.12 =
* Fix false HTML tag validation warnings in the frontend table renderer when filters include void elements such as `input`.

= 1.0.11 =
* Add CSV-friendly link formats (`Label|URL` / `Label (URL)`) and clarify why the plugin uses public CSV instead of Google Drive/Sheets API.
* Document duplicate CSV header handling to prevent URL column overwrite.

= 1.0.10 =
* プラグインチェックのすべてのERRORとWARNINGを修正
* `includes/class-table-manager.php`: `get_table()`メソッドにキャッシュ機能を追加
* `includes/class-table-manager.php`: データベースクエリの警告に適切な`phpcs:disable/enable`コメントを追加
* プラグインチェックで「No errors found」を達成

= 1.0.9 =
* プラグインチェックのすべてのWARNINGとERROR修正を含むバグフィックスリリースです。
* `error_log()`の使用箇所に適切な`phpcs:ignore`または`phpcs:disable`コメントを追加しました（WP_DEBUGが有効な場合のみ実行されるデバッグログのため）。
* データベースクエリの警告に適切な`phpcs:ignore`コメントを追加しました（カスタムテーブルへの直接クエリで、テーブル名は`$wpdb->prefix`から構築されており安全です）。
* `$_POST['exact_match']`のサニタイズ警告に適切な`phpcs:ignore`コメントを追加しました（文字列比較のみでboolean値への変換のため）。
* ビューファイル内のグローバル変数のプレフィックス警告に`phpcs:disable/enable`コメントを追加しました（ビューファイル内のローカル変数のため）。

= 1.0.8 =
* 致命的な構文エラーの修正（class-google-sheets.phpの複数の構文エラーを修正：不要な閉じ括弧の削除、不足していた閉じ括弧の追加）
* プラグイン有効化時の「重大なエラー」を解決

= 1.0.7 =
* ZIPファイル作成方法の改善（作業ディレクトリを変更してから圧縮する方式に変更）
* プラグインインストール時の二重フォルダ構造問題の完全解決

= 1.0.6 =
* ZIPファイル構造の修正（プラグインフォルダがルートに含まれるように修正）
* プラグインインストール時の二重フォルダ構造問題の解決

= 1.0.5 =
* 致命的な構文エラーの修正（class-google-sheets.phpのif文の閉じ括弧不足）
* プラグイン有効化エラーの解決

= 1.0.4 =
* プラグインチェックのERROR修正（main-page.phpの残りのローカル変数のプレフィックス警告）

= 1.0.3 =
* プラグインチェックのERROR修正（main-page.phpのローカル変数のプレフィックス警告）
* セキュリティ関連のWARNING修正（$_POST['exact_match']のサニタイズ処理）

= 1.0.2 =
* プラグインチェックのERROR修正（グローバル変数/関数のプレフィックス警告）
* セキュリティ関連のWARNING修正（nonce検証、サニタイズ処理）
* コード品質の向上（phpcs:ignoreコメントの適切な配置）

= 1.0.1 =
* プラグインチェックのエラー修正
* セキュリティ強化（エスケープ処理の改善）
* コード品質の向上
* WordPress.orgガイドラインへの完全準拠

= 1.0.0 =
* 初回リリース
* Googleスプレッドシートからのデータ取得機能
* リアルタイムフィルタリング機能
* ソート機能
* ページネーション機能
* CSVエクスポート機能
* カスタムスタイル設定機能
* 管理画面機能
* リアルタイムプレビュー機能

== Upgrade Notice ==

= 1.0.13 =
Phone numbers in table cells are now tap-to-call on mobile. No breaking changes.

= 1.0.12 =
Fix false frontend tag validation warnings. No breaking changes.

= 1.0.11 =
Add CSV-friendly link formats, clarify CSV vs API rationale, and document duplicate header handling.

= 1.0.10 =
Fix Plugin Check errors and warnings, add caching for get_table(), and improve performance. No breaking changes.

= 1.0.9 =
プラグインチェックのWARNING修正を含むバグフィックスリリースです。既存の機能に影響はありません。アップデートを推奨します。

= 1.0.8 =
致命的な構文エラーを修正した緊急バグフィックスリリースです。プラグイン有効化時の「重大なエラー」を解決しました。必ずアップデートしてください。

= 1.0.7 =
ZIPファイル作成方法を改善したバグフィックスリリースです。プラグインインストール時の二重フォルダ構造問題を完全に解決しました。既存のプラグインフォルダを削除してから再インストールしてください。

= 1.0.6 =
ZIPファイル構造を修正したバグフィックスリリースです。プラグインインストール時の二重フォルダ構造問題を解決しました。必ずアップデートしてください。

= 1.0.5 =
致命的な構文エラーを修正した緊急バグフィックスリリースです。プラグインが有効化できない問題を解決しました。必ずアップデートしてください。

= 1.0.4 =
プラグインチェックのERROR修正を含むバグフィックスリリースです。既存の機能に影響はありません。アップデートを推奨します。

= 1.0.3 =
プラグインチェックのERROR修正を含むバグフィックスリリースです。既存の機能に影響はありません。アップデートを推奨します。

= 1.0.2 =
プラグインチェックのERROR修正とセキュリティ関連のWARNING修正を含むバグフィックスリリースです。既存の機能に影響はありません。アップデートを推奨します。

= 1.0.1 =
セキュリティ強化とコード品質の向上を含むバグフィックスリリースです。既存の機能に影響はありません。アップデートを推奨します。

= 1.0.0 =
初回リリースです。インストールしてご利用ください。

== Development ==

* GitHub: https://github.com/doublecracker/gsheet-tables
* ライセンス: GPL v2 or later

== Credits ==

開発者: doublecracker

== Support ==

問題が発生した場合は、GitHubのIssuesページで報告してください。
https://github.com/doublecracker/gsheet-tables/issues

== Support the Development ==

GSheet Tables is free and open source. If you find it useful, please consider supporting its development:

* ☕ [Buy Me a Coffee](https://www.buymeacoffee.com/doublecracker)
* 💝 [GitHub Sponsors](https://github.com/sponsors/doublecracker)

Your support helps maintain and improve this plugin. Thank you!
