=== YOUELBLOCKS === Contributors: youelblocks Tags: form, form-builder, blocks, gutenberg, contact-form Requires at least: 5.0 Tested up to: 6.9 Stable tag: 1.0.0 Requires PHP: 7.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Create and manage custom forms intuitively using WordPress block editor. == Description == **YOUELBLOCKS** is a powerful WordPress plugin that allows you to create and manage custom forms easily and intuitively using the WordPress block editor (Gutenberg). ### ๐Ÿš€ **Key Features** * **Block-based Form Builder**: Easily build forms with drag and drop * **Various Field Types**: Support for 15+ field types including text, email, file upload, checkbox, and more * **Real-time Data Management**: View and manage submitted data in real-time * **Data Export**: Export data in CSV and Excel formats * **PDF Generation**: Convert user input to PDF for email attachment and download * **Password Duplicate Validation**: Prevent duplicate passwords and enable data modification * **Shortcode Support**: Display form data easily with shortcodes * **Responsive Design**: Works perfectly on all devices * **Enhanced Security**: Security features including nonce verification and data sanitization ### ๐Ÿ”ง **Technical Features** * **WordPress 5.0+ Full Support**: Fully compatible with the latest WordPress versions * **PHP 7.4+ Support**: Performance optimization using latest PHP features * **Multilingual Support**: Full internationalization (i18n) support * **REST API Compatible**: Full WordPress REST API support * **Extensible Architecture**: Developer-friendly structure ### ๐Ÿ“‹ **System Requirements** * **WordPress**: 5.0 or higher (recommended: 6.0+) * **PHP**: 7.4 or higher (recommended: 8.0+) * **Memory**: Minimum 64MB (recommended: 128MB+) * **Required Extensions**: json, mbstring ### ๐ŸŽฏ **Use Cases** * **Contact Forms**: Customer inquiries and consultation requests * **Surveys**: User opinion collection and analysis * **Event Registration**: Event participation applications * **Product Orders**: Simple order forms * **User Registration**: Custom member registration * **Feedback Collection**: Opinion collection for service improvement * **Contract Creation**: PDF generation and email sending * **Application Management**: Password-based data modification and management ### ๐Ÿ”’ **Security Features** * **Nonce Verification**: Security token verification for all AJAX requests * **Data Validation**: Strict input data validation and sanitization * **File Upload Security**: Secure file upload handling * **Permission Management**: Access control based on user permissions * **XSS Prevention**: Cross-site scripting attack prevention ### ๐ŸŒ **Multilingual Support** * **Full Internationalization**: WordPress standard i18n support * **Translation Templates**: POT file provided for translation work * **Multilingual Strings**: All user interface text can be translated * **Locale Support**: Support for various languages and regional settings == Installation == ### 1. ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜ 1. WordPress ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ **ํ”Œ๋Ÿฌ๊ทธ์ธ > ์ƒˆ๋กœ ์ถ”๊ฐ€**๋กœ ์ด๋™ 2. "YOUELBLOCKS"๋ฅผ ๊ฒ€์ƒ‰ 3. **์ง€๊ธˆ ์„ค์น˜** ๋ฒ„ํŠผ ํด๋ฆญ 4. **ํ™œ์„ฑํ™”** ๋ฒ„ํŠผ ํด๋ฆญ ### 2. ์ˆ˜๋™ ์„ค์น˜ 1. ํ”Œ๋Ÿฌ๊ทธ์ธ ํŒŒ์ผ์„ `/wp-content/plugins/youelblocks/` ๋””๋ ‰ํ† ๋ฆฌ์— ์—…๋กœ๋“œ 2. WordPress ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ **ํ”Œ๋Ÿฌ๊ทธ์ธ** ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ํ™œ์„ฑํ™” ### 3. ์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ ํ™•์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ™œ์„ฑํ™” ์‹œ ์ž๋™์œผ๋กœ ์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค: * PHP 7.4 ์ด์ƒ * WordPress 5.0 ์ด์ƒ * ํ•„์š”ํ•œ PHP ํ™•์žฅ (json, mbstring) * ์ถฉ๋ถ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ (64MB ์ด์ƒ) == Frequently Asked Questions == ### Q: WordPress 4.x์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”? A: ์•„๋‹ˆ์š”. YOUELBLOCKS๋Š” WordPress 5.0 ์ด์ƒ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๋ธ”๋ก ์—๋””ํ„ฐ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์‹  WordPress ๋ฒ„์ „์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ### Q: PHP 7.4์—์„œ ์ž‘๋™ํ•˜๋‚˜์š”? A: ๋„ค. PHP 7.4 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  PHP ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ์„ ์ตœ์ ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ### Q: ๊ธฐ์กด ํผ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ํ˜ธํ™˜๋˜๋‚˜์š”? A: YOUELBLOCKS๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ๋‹ค๋ฅธ ํผ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ์ถฉ๋Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ๋Š” ์ค‘๋ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Q: ๋ฐ์ดํ„ฐ๋Š” ์–ด๋””์— ์ €์žฅ๋˜๋‚˜์š”? A: ๋ชจ๋“  ํผ ๋ฐ์ดํ„ฐ๋Š” WordPress ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ํŽ˜์ด์ง€๋ณ„๋กœ ๋ณ„๋„์˜ ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ### Q: ํŒŒ์ผ ์—…๋กœ๋“œ๊ฐ€ ์ง€์›๋˜๋‚˜์š”? A: ๋„ค. ์ด๋ฏธ์ง€, ๋ฌธ์„œ, ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ๋“ฑ ๋‹ค์–‘ํ•œ ํŒŒ์ผ ํ˜•์‹์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด์•ˆ์„ ์œ„ํ•ด ํŒŒ์ผ ํฌ๊ธฐ์™€ ํ˜•์‹์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Q: ๋‹ค๊ตญ์–ด ์ง€์›์ด ๋˜๋‚˜์š”? A: ๋„ค. ์™„์ „ํ•œ ๊ตญ์ œํ™”(i18n)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. POT ํŒŒ์ผ์„ ์ œ๊ณตํ•˜์—ฌ ๋ฒˆ์—ญ ์ž‘์—…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ### Q: REST API๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‚˜์š”? A: ๋„ค. WordPress REST API๋ฅผ ํ†ตํ•ด ํผ ๋ฐ์ดํ„ฐ์— ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Q: PDF ์ƒ์„ฑ ๊ธฐ๋Šฅ์ด ์žˆ๋‚˜์š”? A: ๋„ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋‚ด์šฉ์„ PDF๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ด๋ฉ”์ผ์— ์ฒจ๋ถ€ํ•˜๊ฑฐ๋‚˜ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. wkhtmltopdf๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด ์‹ค์ œ PDF ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๊ณ , ์—†์œผ๋ฉด HTML ํŒŒ์ผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ### Q: ๋น„๋ฐ€๋ฒˆํ˜ธ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‚˜์š”? A: ๋„ค. ๋™์ผํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Q: ์ด๋ฉ”์ผ๋กœ PDF๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‚˜์š”? A: ๋„ค. ํผ ์ œ์ถœ ํ›„ ์ด๋ฉ”์ผ ๋ฐœ์†ก ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋‚ด์šฉ์ด PDF๋กœ ๋ณ€ํ™˜๋˜์–ด ์ด๋ฉ”์ผ์— ์ฒจ๋ถ€๋˜์–ด ๋ฐœ์†ก๋ฉ๋‹ˆ๋‹ค. ### Q: ๋ฐฑ์—…๊ณผ ๋ณต์›์ด ๊ฐ€๋Šฅํ•œ๊ฐ€์š”? A: ๋„ค. ํผ ๋ฐ์ดํ„ฐ๋ฅผ CSV๋‚˜ Excel ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ณ  ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. == Screenshots == 1. ๋ธ”๋ก ์—๋””ํ„ฐ์—์„œ ํผ ๊ตฌ์„ฑ 2. ๋‹ค์–‘ํ•œ ํ•„๋“œ ํƒ€์ž… ์„ ํƒ 3. ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ 4. ๋ฐ์ดํ„ฐ ๋‚ด๋ณด๋‚ด๊ธฐ ๊ธฐ๋Šฅ 5. ๋ฐ˜์‘ํ˜• ํผ ๋””์ž์ธ 6. ๊ด€๋ฆฌ์ž ์„ค์ • ํŽ˜์ด์ง€ == Changelog == ### 6.0.16 * **ํ™•์žฅ์„ฑ ๋ฐ ํ˜ธํ™˜์„ฑ ๋Œ€ํญ ๊ฐ•ํ™”** * WordPress 5.0+ ๊ณต์‹ ์ง€์›, ์ตœ์‹  6.4๊นŒ์ง€ ํ…Œ์ŠคํŠธ ์™„๋ฃŒ * PHP 7.4+ ์ง€์›์œผ๋กœ ์ตœ์‹  PHP ๊ธฐ๋Šฅ ํ™œ์šฉ * ์™„์ „ํ•œ ๋‹ค๊ตญ์–ด ์ง€์› (i18n) ๊ตฌํ˜„ * ์ž๋™ ํ˜ธํ™˜์„ฑ ๊ฒ€์ฆ ์‹œ์Šคํ…œ ์ถ”๊ฐ€ * ํƒ€์ž… ํžŒํŠธ ๋ฐ ๋ฐ˜ํ™˜ ํƒ€์ž… ๋ช…์‹œ๋กœ ์•ˆ์ •์„ฑ ํ–ฅ์ƒ * ๋ณด์•ˆ ๊ฐ•ํ™” (Nonce ๊ฒ€์ฆ, ๋ฐ์ดํ„ฐ sanitization) * ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™” (128MB ์ด์ƒ ์š”๊ตฌ์‚ฌํ•ญ) ### 6.0.15 * ๋ธ”๋ก ์—๋””ํ„ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™” * ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ ์ตœ์ ํ™” * ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ์„  ### 6.0.10 * ๋ณด์•ˆ ๊ฐ•ํ™” * ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ ์‹œ์Šคํ…œ ๊ฐœ์„  * ํŒŒ์ผ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ ๊ฐ•ํ™” ### 6.0.0 * ์™„์ „ํ•œ ๋ธ”๋ก ์—๋””ํ„ฐ ํ†ตํ•ฉ * ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ * ํ˜„๋Œ€์ ์ธ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค == Upgrade Notice == ### 6.0.16 **์ค‘์š”**: ์ด ๋ฒ„์ „์€ PHP 7.4 ์ด์ƒ๊ณผ WordPress 5.0 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ์ „ ์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ์„ ํ™•์ธํ•˜์„ธ์š”. == Developer Information == ### ๊ฐœ๋ฐœ์ž ๊ฐ€์ด๋“œ YOUELBLOCKS๋Š” ๊ฐœ๋ฐœ์ž ์นœํ™”์ ์ธ ๊ตฌ์กฐ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค: #### ํด๋ž˜์Šค ๊ตฌ์กฐ ```php YOUELBLOCKS_Manager // ๋ฉ”์ธ ๊ด€๋ฆฌ ํด๋ž˜์Šค โ”œโ”€โ”€ YOUELBLOCKS_Editor // ๋ธ”๋ก ์—๋””ํ„ฐ ๊ด€๋ฆฌ โ”œโ”€โ”€ YOUELBLOCKS_Public // ํ”„๋ก ํŠธ์—”๋“œ ๊ด€๋ฆฌ โ”œโ”€โ”€ YOUELBLOCKS_Admin // ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ โ”œโ”€โ”€ YOUELBLOCKS_Utils // ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜ โ””โ”€โ”€ YOUELBLOCKS_Compatibility // ํ˜ธํ™˜์„ฑ ์ฒดํฌ ``` #### ํ›…๊ณผ ํ•„ํ„ฐ ```php // ํผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ „ add_filter('youelblocks_before_save_form_data', $callback); // ํผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ›„ add_action('youelblocks_after_save_form_data', $callback); // ํ•„๋“œ ๋ Œ๋”๋ง ์ปค์Šคํ„ฐ๋งˆ์ด์ง• add_filter('youelblocks_field_render', $callback); ``` #### REST API ```php // ํผ ๋ฐ์ดํ„ฐ ์กฐํšŒ GET /wp-json/youelblocks/v1/forms/{page_id}/data // ํผ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ POST /wp-json/youelblocks/v1/forms/{page_id}/data ``` ### ๊ธฐ์—ฌํ•˜๊ธฐ YOUELBLOCKS ๊ฐœ๋ฐœ์— ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด: 1. GitHub ์ €์žฅ์†Œ๋ฅผ ํฌํฌํ•˜์„ธ์š” 2. ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜์„ธ์š” 3. ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•˜์„ธ์š” 4. Pull Request๋ฅผ ์ œ์ถœํ•˜์„ธ์š” ### ๋ผ์ด์„ ์Šค ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ GPL v2 ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ๋ผ์ด์„ ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. == Support == ### ์ง€์› ์ฑ„๋„ * **๊ณต์‹ ์›น์‚ฌ์ดํŠธ**: https://youelblocks.co.kr * **์ง€์› ํฌ๋Ÿผ**: https://youelblocks.co.kr/support * **์ด๋ฉ”์ผ ์ง€์›**: support@youelblocks.co.kr * **GitHub Issues**: https://github.com/youelblocks/youelblocks/issues ### ๋ฌธ์„œ * **์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ**: https://youelblocks.co.kr/docs * **๊ฐœ๋ฐœ์ž ๋ฌธ์„œ**: https://youelblocks.co.kr/docs/developer * **API ๋ฌธ์„œ**: https://youelblocks.co.kr/docs/api == External Services == This plugin can optionally use **Google reCAPTCHA v2** to protect forms from spam submissions. - **Service name**: Google reCAPTCHA v2 - **Purpose**: Verify that form submissions are made by humans, not automated bots. - **What data is sent and when**: - When a user views a form with CAPTCHA enabled, their browser loads the Google reCAPTCHA script from `https://www.google.com/recaptcha/api.js`. - When the user submits the form, the CAPTCHA response token and basic request metadata (such as IP address, browser information, and related technical details collected by Google) are sent to `https://www.google.com/recaptcha/api/siteverify` for verification. - **Where data is sent**: - Google LLC (reCAPTCHA service), via the domains `www.google.com` and related Google endpoints. - **Terms of Service and Privacy Policy**: - Google reCAPTCHA Terms of Service: https://policies.google.com/terms - Google Privacy Policy: https://policies.google.com/privacy reCAPTCHA can be enabled or disabled at any time from the YOUELBLOCKS admin settings page. If you do not enable CAPTCHA, no data is sent to Google reCAPTCHA. ### ์ปค๋ฎค๋‹ˆํ‹ฐ * **WordPress.org ํฌ๋Ÿผ**: https://wordpress.org/support/plugin/youelblocks * **GitHub Discussions**: https://github.com/youelblocks/youelblocks/discussions