انواع افزونه وردپرس و دلیل پیدایش ساختار آن ها در هسته وردپرس

افزونه های وردپرس و قالب ها ، دو بخش اصلی برای توسعه هسته ی وردپرس می باشند. آقای Brian Messenlehner (توسعه دهنده وردپرس) در کتاب Building Web Apps with WordPress بیان نموده است که می بایست سیستم WordPress را همانند یک فریم ورک زبان PHP نگاه کرد ، ن فقط یک سیستم مدیریت محتوا (CMS) که وظیفه ی انتشار محتوا را دارد.

 

برنامه نویسی شی گرایی یا MVC در وردپرس

اگر بخواهیم مدل صحیح MVC را در وردپرس پیاده سازی کنیم:

  1. بخش View یا همان نمایش که قالب وردپرس هست.
  2. بخش Model ها که می توان آن را به افزونه های وردپرس پیوست داد.
  3. بخش Controller ها که وظیفه ی اصلی آن در کلاس WP_Rewrite  برای بخش وب و کلاس REST API برای وب سرویس وردپرس خلاصه می شود. که ما از آن در  هوک های وردپرس مثل template_include یا template_redirect استفاده می کنیم.

یکی از بزرگترین نقد هایی که بنده به توسعه دهنگان وردپرس می کنم آن هست که ساختار MVC را در کدنویسی افزونه و قالب وردپرس نادیده می گیرند و گاها تمام برنامه نویسی وردپرس و هوک ها را در قالب وردپرس انجام می دهند. این امر کاملا اشتباه هست و می بایست این اعمال در افزونه های وردپرس پیاده سازی شوند. زیرا قالب وردپرس تنها وظیفه ی نمایش را دارد ن نبایست کدهای تحلیلی پروژه را در این بخش قرار داد.

حال با توجه به اهمیت افزونه های وردپرس در این مقاله به بررسی انواع افزونه وردپرس از نظر ساختار ، در هسته ی وردپرس می پردازیم تا با امکاناتی که در این باره در اختیار توسعه دهندگان وردپرس قرار گرفت کاملا آشنا شویم.

سرفصل های محتوا

    افزونه وردپرس چیست ؟

    طبق تعریف رسمی مخزن وردپرس افزونه ها ،پکیج ها یا بسته هایی هستند که می توانیم توسط آن ها امکانات وردپرس را گسترش دهیم.این افزونه ها توسط زبان PHP برنامه نویسی می شوند و برای ساختاری قوی می توان کدهای جاوا اسکریپ (JavaScript) و یا Css را نیز به آن ها ضمیمه کرد. اگر بخواهیم در یک کلمه بگوییم وظیفه اصلی گسترش در هسته رودپرس چیست قطعا میتوان آن را هوک های وردپرس نامید.

    هوک وردپرس حتما بخوانید : هوک وردپرس و استفاده از اکشن و فیلتر در توسعه پذیری وردپرس

    اما سوال اینجاست واقعا می توان تمامی امکانات وردپرس را به دلخواه گسترش دهیم؟ اگر با انواع افزونه وردپرس آشنا باشید پاسخ این سوال قطعا بله می باشد.

    انواع افزونه های وردپرس از نظر ساختار هسته وردپرس

    بطور کلی 3 مدل افزونه در ساختار وردپرس تعبیه شده است ، نکته ی بسیار کلیدی که در این باره وجود دارد ترتیب لود شدن افزونه های وردپرس در صفحات وب سایت هست.
    همان طور که می دانید هر افزونه ها ای که در وردپرس زودتر بارگزاری شود قابلیت این را دارد که همانند ابرهای آسمان که بر تمام آسمان زمین تسلط دارند ، بر بارگزاری افزونه های دیگر تاثیر بگذارد یا حتی مانع از لود شدن آن ها در برخی از درخواست های وردپرس شود.من در زیر به تشریح هر یک از این 3 مدل انواع افزونه وردپرس ، طبق ترتیب لود شدن آن ها می پردازم.

    افزونه وردپرس جایگزین (Drop-ins plugins)

    افزونه های Drop-ins شامل افزونه های پیشرفته ای هستند که به شما این امکان را می دهد قابلیت های اصلی وردپرس را تغییر دهید. اگر تابع get_dropins را در هسته ی وردپرس بررسی کنید خواهید دید که در حال حاضر 12 افزونه Drop-ins در وردپرس تعبیه شده است. که 4 مورد آن تنها مرتبط با حالت وردپرس شبکه ای یا Network می باشد.

    افزونه وردپرس Drop-ins

     افزونه جایگزین Drop-ins در کجای وردپرس قرار میگیرند؟

    افزونه های Drop-ins در پوشه wp-content در وردپرس قرار میگرند. و تنها شامل یک فایل PHP می باشند که با توجه به نیاز خود می بایست آن فایل را ایجاد کنید و در پوسه wp-content وردپرس خود قرار دهید.
    افزونه های Drop-ins قابلیت غیر فعال سازی در وردپرس را ندارند و اگر می خواهید قابلیت آن را در وردپرس حذف کنید تنها راه کار حذف فایل مربوطه از روی هاست یا پوشه wp-content می باشد.

    لیست افزونه های جایگزین Drop-ins

    اتصال به بانک اطلاعاتی دل خواه یا چند دیتابیس در وردپرس با فایل db.php

    بانک اطلاعاتی در وردپرس به صورت پیش فرض MYSQL می باشد. شما توسط این افزونه می توانید کلاس اصلی بانک اطلاعاتی در وردپرس که همان WPDB می باشد را کاملا تغییر دهید. یعنی طبق خواسته خود آن را متصل به انواع بانک اطلاعاتی مثل اوراکل ، Access یا SQL کنید. و یا حتی این امکان را دارید برای پروژه های بزرگ وردپرسی خود از چند دیتابیس به صورت هم زمان استفاده کنید.

    پکیج stuttter/ludicrousdb یکی از معروف ترین پکیج های وردپرس می باشد که توسط آن می توانید وب سایت وردپرس خود را به چند دیتابیس هم زمان متصل کنید.فقط دقت داشته باشید که این تقسیم بندی برای جداول بانک اطلاعاتی ضورت میگیرد.یعنی شما میتوانید جدول wp_posts را در یک بانک اطلاعاتی و جدول wp_users را در بانک اطلاعاتی دیگری قرار دهید. اما نمیتوانید داده های یک جدول را بین دو دیتابیس تقسیم بندی کنید که اصلا هم این امر استاندارد و پذیرفته نیست.

    نمایش خطای اتصال به بانک اطلاعاتی وردپرس با فایل db-error.php

    اگر وردپرس در اتصال به بانک اطلاعاتی دچار مشکلی شود و یا این که شما وارد فایل wp-config.php شوید و یکی از پارامتر هایی که مرتبط با دیتابیس وردپرس هست را مقدار آن را دست کاری کنید خواهید دید که در وردپرس ، با خطای اتصال به بانک اطلاعاتی با عبارت “Error establishing a database connection” مواجه می شوید:

    خطای بانک اطلاعاتی در وردپرس

    بوسیله افزونه db-error.php می توانید این صفحه را تغییر دهید. بیایید با هم یک نمونه از آن را ایجاد کنیم.
    ابتدا در پوشه wp-content یک فایل به نام db-error.php ایجاد کنید.

    پوشه افزونه های جایگزین در وردپرس

    و کدهای زیر را در آن کپی کنید:

    <!DOCTYPE html>
    <html lang="fa-IR">
    	<head>
    		<style>
    		body {
    			font:12px tahoma;
    		}
    		.alert {
    			width: 500px;
    			height: 100px;
    			background-color: #ffffff;
    			margin: 25px auto;
    			text-align: center;
    			line-height: 10px;
    			padding-top: 40px;
    			box-shadow: 1px 1px 16px #f3e4e4;
    			border-radius: 15px;
    		}
    		</style>
    		<meta charset="UTF-8">
    		<title>ِDatabase Error!</title>
    	</head>
    	<body>
    		<div class="alert">
    			<p>خطای اتصال با بانک اطلاعاتی رخ داده است</p>
    			<p>لطفا دقایقی دیگر وارد سایت شوید</p>
    		<div>
    	</body>
    </html>

    حال اگر پارامتر های بانک اطلاعاتی مثل DB_HOST را در فایل wp-config.php دستکاری کنید. در وب سایت وردپرس خطا به شکل زیر برای عدم برقراری با دیتابیس نمایش داده خواهد شد:

    تغییر خطای اتصال به بانک اطلاعاتی وردپرس

    اگر در مدیریت وردپرس به بخش افزونه ها بروید ، خواهید دید که یک سربرگ به نام افزونه های جایگزین اضافه شده است:

    افزونه جایگزین وردپرس

    چندین فایل در مجموعه افزونه های Drop-ins در وردپرس وظیفه تغییر در ظاهر نمایش خطاها در وردپرس را دارند که در زیر لیست شده است:

    نام فایلوظیفه افزونه
    db-error.phpدر زمان خطای بانک اطلاعاتی وررپرس
    maintenance.phpدر زمان این که وردپرس در حالت تعمیر قرار گرفته باشد.
    php-error.phpزمانی که وردپرس با خطای اجرای PHP برخورد کرده باشد.
    fatal-error-handler.phpزمانی که وردپرس در اجرای اسکریپ خطای Error Handler گرفته باشد
    blog-deleted.phpزمانی که در وردپرس شبکه یک بلاگ یا سایت را حذف کنید.
    blog-inactive.phpزمانی که در وردپرس شبکه یک بلاگ یا سایت را غیر فعال کنید.
    blog-suspended.phpزمانی که در وردپرس شبکه یک بلاگ یا سایت را کاملا ساسپند یا مسدود کنید.

    تغییر در عملکرد کش وردپرس توسط افزونه فایل های advanced-cache.php و object-cache.php

    تا بحال اگر یک افزونه کش وردپرس (WordPress Cache) نصب کرده باشید مثل WP Rocket و یا Redis Object Cache . خواهید دید که این افزونه ها دقیقا بعد از فعال سازی این فایل ها را در پوشه wp-content شما ایجاد میکنند.
    بوسیله این دو فایل شما قادر خواهید بود موتور کش وردپرس را به سیستم دل خواه خود تغییر دهید. مثلا افزونه های کش Redis ، این موتور را کاملا استاندارد و مبتی بر سیستم ردیس قرار می دهند.اگر شما قصد دارید یک سیستم کش قدرتمند برای استارتاپ وردپرس خود ایجاد کنید توسط این دو فایل کاملا این امر شدنی و امکان پذیر هست.

    فک نکنم به شخصه پروژه ای بوده باشد که از سیستم کش ، مخصوصا Redis در آن ها استفاده نکرده باشم. چون برای استارتاپ های بزرگ در بستر وردپرس یک امر کاملا الزامی تلقی می شود.فقط دقت کنید حتما می بایست متغیر ثابت WP_CACHE در فایل wp-config.php شما با مقدار true قرار داده شده باشد تا وردپرس به شما اجازه استفاده از این دو فایل را بدهد.

    define('WP_CACHE', true);

    انجام عملکرد دلخواه در زمان نصب وردپرس با فایل install.php

    قابلیت اجرای دستورات PHP خاص در زمان نصب سیستم وردپرس یکی از قابلیت های جالب به شمار می آید.مخصوصا زمانی که شما بخواهید وردپرس را با سیستم های دیگر در ارتباط قرار دهید.توسط فایل install.php شما قادر خواهید بود اسکریپ های خود را برای انجام عملیات خاص در زمان نصب اجرا کنید.

    افزونه وردپرس لازم (Must Used plugins یا mu-plugins)

    افزونه های لازم وردپرس یا mu-plugins ، افزونه هایی هستند که به توسعه دهندگان این قابلیت را می دهند تا افزونه هایی را ایجاد کنند که بصورت پیش فرض فعال هستند و کاربران اجاره حذف یا غیر فعال سازی آن را ندارند.

    افزونه های لازم در کجا هسته وردپرس قرار دارند ؟

    افزونه های لازم در وردپرس به صورت پیش فرض در پوشه wp-content/mu-plugins واقع می شوند. اگر شما هم سایت وردپرسی دارید احتما اینکه این پوشه وجود داشته باشد کم هست اما میتوانید خودتان این فولدر را ایجاد کنید.
    همچنین اگر میخواهید آدرس مسیر پوشه افزونه های ضروری وردپرس را تغییر دهید از متغیر های ثابت WPMU_PLUGIN_DIR و WPMU_PLUGIN_URL استفاده کنید.

    define( 'WPMU_PLUGIN_URL', 'https://realwp.net/config' );
    define( 'WPMU_PLUGIN_DIR', ABSPATH . 'config' );

    من در وب سایت وردپرس واقعی با قرار دادن کدهای بالا ، مسیر افزونه های ضروری را از پوشه wp-content/mu-plugins به config تغییر دادم.

    چرا افزونه های ضروری اهمیت دارد ؟

    اصلی ترین دلیل آن این است که افزونه های ضروری mu-plugins قبل از تمامی افزونه های معمولی یا Regular وردپرس بارگزاری و فراخوانی می شوند. و همین امر باعث می شود که شما بتوانید در بسیاری از پردازش ها و عملیات ها دخالت مستقیم انجام دهید و آن را بهینه تر کنید.به عنوان مثال من بسیاری از هوک های وردپرس که مباحث امنیت یا ساختاری مربوط می شوند را در mu-plugins قرار میدهم. تا قبل از همه ی افزونه ها بارگزاری شود.

    یک مثلا خیلی ساده آن این است که اگر شما قابلیتی را در وردپرس در بخش mu-plugins غیر فعال کنید ، دیگر پردازش های مرتبط با آن بخش در لابه لای کد های افزونه ها انجام نمی شود. و این یعنی سرعت بالاتر در سیستم.مثلا ویرایش گر Gutenberg را در همان ابتدا غیر فعال میکنم.

    دلیل دوم آن فراگیر بودن افزونه های ضروری می باشد.یعنی دیگر مهم نیست که شما یک وردپرس شبکه (Network) دارید یا یک وب سایت معمولی (Single). افزونه های mu-plugins در هر دو حالت بدون دخالت کاربران سیستم فعال می باشد و هیچ کسی نمی تواند آن را غیر فعال کند مگر اینکه فایل مربوطه از هاست شما حذف شود.

    یک مثال از افزونه Must Used Plugins

    وارد پوشه wp-content شوید و یک فولدر به نام mu-plugins بسازید. می خواهیم افزونه ای را طراحی کنیم که مسیر پیش فرض REST API وردپرس را از site.com/wp-json به site.com/api تغییر دهیم.

    یک فایل با نام change-rest-api-prefix.php ایجاد کنید و کدهای زیر را در آن قرار دهید:

    <?php
    /**
     * Plugin Name: Change WordPress REST APi Prefix Url
     * Plugin URI:  https://realwp.net
     * Author:      Mehrshad Darzi
     */
     
    add_filter( 'rest_url_prefix', 'change_wordpress_rest_api_prefix'); 
    function change_wordpress_rest_api_prefix( $slug ) { 
    	return 'api';
    }

    اگر در مدیریت وردپرس ، وارد بخش افزونه ها شوید خواهید دید که سربرگ جدید به نام افزونه های لازم در آن ایجاد شده است.

    افزونه های لازم یا mu-plugins

    دقیقا مشابه افزونه های جایگزین ، در شکل بالا همان طور که می بینید کاربر اجازه غیر فعال کردن این افزونه را ندارد. حالا اگر به قسمت تظیمات ، پیوند های یکتا بروید و آن را flush rewrite یا روی ذخیره تنظیمات کلیک کنید خواهید که آدرس REST API وردپرس شما به site.com/api تغییر یافته است.

    حتما بخوانید : چگونه در REST API وردپرس ، دسترسی Token برای گسترش استارتاپ ایجاد کنیم ؟

    سوال، اگر چند افزونه لازم mu-plugins در فولدر قرار داده باشیم باز بین آن ها اولویت بارگزاری کدام هست،  یعنی کدام یک زود تر لود می شوند در سیستم وردپرس ؟

    افزونه های لازم بر اساس حروف الفبا انگلیسی بارگزاری می شوند یعنی اگر دو افزونه mu-plugins داشته باشید به نام های backup.php و import.php ابتدا فایل backup.php خوانده می شود و سپس فایل impoert.php.

    لیست افزونه های لازم وردپرس

    اگر تابع get_mu_plugins را در هسته ی وردپرس مشاهده کنید خواهید دید که در آخر توسط تابع uasort بر اساس حروف الفبا فایل ها را لیست و بارگزاری می کند.

    افزونه های عمومی وردپرس Regular plugins

    افزونه های عمومی (Regular) وردپرس ، همان افزونه هایی است که در مخزن افزونه وردپرس قرار دارد و کاربران می توانند براحتی آن ها در وردپرس نصب و استفاده نمایند.این افزونه ها در مرحله ی آخر یعنی بعد از افزونه های جایگزین (Drop-ins) و لازم (mu-plugins) بارگزاری می شوند. و کاربر حداکثر حق دسترسی برای فعال سازی یا غیر فعال کردن و یا حتی حذف آن ها را دارد.

    نصب افزونه وردپرس

    روش نصب افزونه وردپرس

    برای نصب افزونه وردپرس می توان از سه روش استفاده نمود:

    1. روش اول بوسیله خط فرمان وردپرس (WP-CLI) می باشد. شما می توانید با دستور wp plugin install براحتی افزونه خود را نصب و فعال سازی کنید..از جمله ویژگی های این قابلیت نصب چندین افزونه بصورت هم زمان و همچنین مصرف کم منابع هاست که مشکل بسیاری از سایت های وردپرسی هست اشاره نمود.اگر با WP-CLI آشنایی ندارید پیشنهاد میکنم حتما از قافله عقب نمایید و آموزش مدیریت در خط فرمان را در آکادمی وردپرس واقعی تهیه کنید.
    2. روش دوم کافیست در مدیریت سیستم وردپرس وارد بخش افزونه ها شوید ، سپس افزونه ای که می خواهید را جستجو کنید مثلا WooCommerce. سپس روی گزینه نصب کلیک کنید.
    3. روش سوم استفاده از وب سایت مخزن وردپرس هست. ابتدا وارد مخزن افزونه وردپرس شوید. سپس افزونه خود را جستجو کنید و وارد صفحه آن شوید و بصورت دستی فایل زیپ مرتبط با افزونه دانلود کنید. حالا کافیست فایل Zip افزونه را در قسمت بارگزاری افزونه ها وارد نمایید.این روش مخصوصا برای افزونه های غیر رایگان که از lارکت هایی مثل Envato خریداری می شود بسیار پر کاربرد هست.

    افزونه های عمومی وردپرس در کجای هسته وردپرس قرار دارند ؟

    افزونه های عمومی وردپرس بصورت پیش فرض در پوشه wp-content/plugins قرار دارند. این مقدار توسط ثابت های WP_PLUGIN_DIR و WP_PLUGIN_URL در هسته ی وردپرس تعریف شده است. برای تغییر آدرس پیش فرض افزونه های عمومی وردپرس ، کافیست کد زیر را در فایل wp-config.php قرار دهید:

    define ('WP_PLUGIN_URL', 'https://realwp.net/addons');
    define ('WP_PLUGIN_DIR', ABSPATH  . 'addons');
    define ('PLUGINDIR', ABSPATH . 'addons' );

    توسط کدهای بالا مکان افزونه های وردپرس را از wp-content/plugins به پوشه addons تغییر دادیم. فقط دقت کنید فایل ها را حتما انتقال دهید تا با خطا مواجه نشوید.

    ساختار افزونه های عمومی وردپرس

    برخلاف افزونه های ضروری و جایگزین در وردپرس ، افزونه های عمومی هر یک در یک فولدر اختصاصی قرار میگیرند که به آن ها plugin-name گفته می شود. درون هر فولدر نیز یک فایل به نام آن پوشه قرار دارد و وردپرس با شناسایی آن فایل متوجه خواهد شد که این یک افزونه هست و می بایست در لیست افزونه های وردپرس در مدیریت نمایش دهد.

    پوشه پلاگین های وردپرس

    تابع get_plugins در هسته ی وردپرس وظیفه شناسایی افزونه ها در این پوشه را بر عهده دارد.
    اگر فایل اصلی PHP هر یک افزونه ها را باز کنید. خواهید دید که دارای سربرگ با فرمت یکسان هستند. این همان اطلاعاتی است که از افزونه ها در صفحه مدیریت افزونه ها نمایش داده می شود.

    به عنوان مثال سربرگ افزونه ووکامرس (WooCommerce) بصورت زیر هست:

    <?php
    /**
     * Plugin Name: WooCommerce
     * Plugin URI: https://woocommerce.com/
     * Description: An eCommerce toolkit that helps you sell anything. Beautifully.
     * Version: 4.4.0-dev
     * Author: Automattic
     * Author URI: https://woocommerce.com
     * Text Domain: woocommerce
     * Domain Path: /i18n/languages/
     * Requires at least: 5.2
     * Requires PHP: 7.0
     */

    شناسایی افزونه های فعال در وردپرس

    همان طور که می دانید افزونه های عمومی وردپرس می توانند حضور داشته باشند اما توسط کاربر غیر فعال باشند. اما وردپرس دقیقا از کجا تشخیص می دهد که چه افزونه هایی فعال هستند تا در زمان بارگزاری صفحه آن ها را لود کند ؟

    پاسخ در جدول options وردپرس قرار دارد. یک option_name با نام active_plugins وجود دارد که در آن لیست افزونه هایی که فعال هستند ، بصورت آرایه قرار داده است.

    افزونه های فعال وردپرس در phpmyadmin

    همچنین می توانید توسط تابع get_option این لیست را در وردپرس خود مشاهده کنید:

    add_action('init, 'show_active_plugins');
    function show_active_plugins(){
    	$active_plugins = get_option('active_plugins');
    	var_dump($active_plugins);
    	exit;
    }

    عیب یابی و رفع خطا افزونه های عمومی وردپرس

    گاهی مواقع بدلیل خطایی که در یکی از افزونه های وردپرس ایجاد می شود . ما امکان وارد شدن به بخش مدیریت را نداریم که آن را غیر فعال کنیم.
    برای غیر فعال کردن افزونه های عمومی در این مواقع می توان از همان فیلد active_plugins استفاده نمود. به عنوان مثال اگر می خواهید تمامی افزونه ها را غیر فعال کنید کافی است ابتدا وارد PHPMyAdmin هاست شوید. سپس از جدول wp_options مقدار option_value را برای active_plugins به صورت زیر تغییر دهید:

    a:0:{}

    و یا راه حل ساده تر آن هست که نام فولدر افزونه را تغییر نام دهید. با این کار وردپرس آن را ناشناخته تشخیص داده و از لود صفحه خارج می کند. مثلا اگر خطایی از افزونه ی woocommerce دریافت کرده اید، کافی است وارد فایل منجر هاست شوید سپس از پوشه ی wp-content/plugins نام فولدر woocommerce را به woocommer1 تغییر دهید. براحتی افزونه غیر فعال می شود.

    کدام افزونه برای توسعه وردپرس اهمیت بیشتری دارد ؟

    با توجه به راحتی نصب و کار با افزونه های عمومی (Regular) تقریبا تمامی توسعه دهندگان ، برنامه نویسی افزونه وردپرس و محصولات خود را در قالب این نوع افزونه تولید و منتشر می کنند. افزونه های جایگزین و Mu-Plugins ها اکثرا برای سیستم سازی و راهبرد پروژه های استارتاپ وردپرس استفاده می شوند که هر کدام دارای تنظیمات خاص منطبق با نوع پروژه می باشد.
    از آن جا که اقبال افزونه های regular برای کاربران عادی بسیار بیش تر بوده مارکت ها و توسعه دهندگان نیز به سمت آن ها در حرکت هستند.

    برنامه نویسی افزونه وردپرس حتما بخوانید : اصول اولیه برنامه نویسی افزونه وردپرس برای تولید یک محصول استاندارد

    با یادگیری و تسلط بر افزونه های عمومی (Regular) شما یک وردپرس کار و توسعه دهنده وردپرس خوب می شوید. اما با تسلط بر Mu-Plugins ها و Drop-ins ها شما به یک متخصص تمام عیار تبدیل شد.

    مطلب رو به اشتراک بگذارید
    ۳دیدگاه
    در بحث‌‌ پیرامون این مقاله شرکت کنید!
    ارسال دیدگاه
    • avatar

      HA

      دوشنبه ۶ مرداد ۱۳۹۹ ۱۱:۱۲ ب٫ظ

      واقعا عالی بود ممنونم

    • حـ بوستان

      حـ بوستان

      یکشنبه ۱۶ شهریور ۱۳۹۹ ۷:۵۸ ب٫ظ

      انصافا مطلب جامعی در بحث پلاگین ها در وردپرسه
      ممنون
      اقای درزی برا تغییر مسیر wp-content و همچنین پلاگین های mu میشه از این DOCUMENT_ROOT استفاده کرد؟

      • مهرشاد درزی

        مهرشاد درزی

        یکشنبه ۲ آذر ۱۳۹۹ ۱۱:۲۰ ق٫ظ

        اگر در حال پیاده سازی یک افزونه یا قالبی هستید که به کاربران مختلفی قراره فروخته بشه ، استفاده از متغیر های SERVER رو می بایست در PHP خیلی با احتیاط استفاده کنید ، اما پروژه های خصوصی خیر بلا مانع هست.

    سرویس ها و خدمات وردپرس

    اتصال نرم افزار حسابداری هلو به افزونه فروشگاه ساز ووکامرس

    اتصال دو طرفه بخش انبارداری یا محصولات ، مشتریان و فاکتور های نرم افزار حسابداری هلو با افزونه فروشگاه ساز ووکامرس ، همراه با قابلیت بروزرسانی هماهنگ موجودی ها و قیمت های محصول ، ایجاد فاکتور های اتوماتیک به نام مشتریان وردپرس در نرم افزار حسابداری
    ۸۰۰,۰۰۰ ۴۹۷,۰۰۰ تومان