Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-theme.php on line 554

Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-theme.php on line 595

Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-theme.php on line 535

Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-theme.php on line 544

Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-request.php on line 960

Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-request.php on line 980

Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-request.php on line 992

Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-request.php on line 1003

Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 151

Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 175

Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 164

Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 186

Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 138

Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 75

Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 89

Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 110

Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 127

Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 199

Warning: session_start(): Session cannot be started after headers have already been sent in /var/www/popup4phone/html/wp-content/plugins/popup4phone/includes/components/leads.php on line 18

Deprecated: Return type of WC_DateTime::setTimezone($timezone) should either be compatible with DateTime::setTimezone(DateTimeZone $timezone): DateTime, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-content/plugins/woocommerce/includes/class-wc-datetime.php on line 57

Deprecated: Return type of WC_DateTime::getOffset() should either be compatible with DateTime::getOffset(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-content/plugins/woocommerce/includes/class-wc-datetime.php on line 47

Deprecated: Return type of WC_DateTime::getTimestamp() should either be compatible with DateTime::getTimestamp(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-content/plugins/woocommerce/includes/class-wc-datetime.php on line 68

Deprecated: Return type of WC_Meta_Data::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-content/plugins/woocommerce/includes/class-wc-meta-data.php on line 50

Warning: session_start(): Session cannot be started after headers have already been sent in /var/www/popup4phone/html/wp-content/plugins/popup4phone-premium-lite2/includes/main.php on line 402

Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/popup4phone/html/wp-includes/class-wp.php on line 173

Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Reliable Senior Web Developer (7 years exp.) - PHP, MySQL, Yii, API, WordPress

My total programming experience is more than 18 years (since 1997), experience in web-development is more than 7 years (since 2008).

I have completed more than 100 projects. These projects includes web sites, online stores, custom CRMs, web-services/Apps/SaaS, API integration/automation tasks, ecommerce email marketing apps (collecting data, segmentation, cart abandonment, feedback request, etc.), web-analytics setup

I prefer to working on programming web services / web applications (Software as a Service, SaaS), WordPress / WooCommerce plugins related to marketing and analytics, data-mining, automation.

Also I like to work with ecommerce tasks (for example, cart abandonment emails, customers reactivation campaigns).

Rate: 49 USD per hour

My advantages

My disadvantages (yes, I don't hide it)

My skills

Strong fundamentals (math, algorithms, theory), analytical thinking.

I have experience with PHP, JavaScript (including jQuery, WebRTC, WebSockets, canvas), AJAX, MySQL, SQLite.

Just few feedbacks

Risk-free test

Do you want to reduce risks when hiring freelancers for your project?

Best check before hiring freelancer – complete some part of your project. This will sure confirm ability of freelancer to work on your specific project.

I am ready to provide you demo/test task before hiring, so you will be sure in my skills in advance.

For each new customer I can dedicate up to 4 hours for demo/test tasks (costs $144 with my current rate, but you will receive it for free).

Contact me

Please send a request using this form:





Warning: session_start(): Session cannot be started after headers have already been sent in /var/www/popup4phone/html/wp-content/plugins/popup4phone-premium-lite2/includes/main.php on line 442





Reliable Senior Web Developer (7 years exp.) - PHP, MySQL, Yii, API, WordPress

My total programming experience is more than 18 years (since 1997), experience in web-development is more than 7 years (since 2008).

I have completed more than 100 projects. These projects includes web sites, online stores, custom CRMs, web-services/Apps/SaaS, API integration/automation tasks, ecommerce email marketing apps (collecting data, segmentation, cart abandonment, feedback request, etc.), web-analytics setup

I prefer to working on programming web services / web applications (Software as a Service, SaaS), WordPress / WooCommerce plugins related to marketing and analytics, data-mining, automation.

Also I like to work with ecommerce tasks (for example, cart abandonment emails, customers reactivation campaigns).

Rate: 49 USD per hour

My advantages

My disadvantages (yes, I don't hide it)

My skills

Strong fundamentals (math, algorithms, theory), analytical thinking.

I have experience with PHP, JavaScript (including jQuery, WebRTC, WebSockets, canvas), AJAX, MySQL, SQLite.

Just few feedbacks

Risk-free test

Do you want to reduce risks when hiring freelancers for your project?

Best check before hiring freelancer – complete some part of your project. This will sure confirm ability of freelancer to work on your specific project.

I am ready to provide you demo/test task before hiring, so you will be sure in my skills in advance.

For each new customer I can dedicate up to 4 hours for demo/test tasks (costs $144 with my current rate, but you will receive it for free).

Contact me

Please send a request using this form:





Warning: session_start(): Session cannot be started after headers have already been sent in /var/www/popup4phone/html/wp-content/plugins/popup4phone-premium-lite2/includes/main.php on line 442






Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/popup4phone/html/wp-includes/wp-db.php on line 3030

Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667
{"id":132,"date":"2015-12-26T08:50:14","date_gmt":"2015-12-26T08:50:14","guid":{"rendered":"http:\/\/localhost\/?page_id=132"},"modified":"2016-03-15T15:17:48","modified_gmt":"2016-03-15T15:17:48","slug":"author","status":"publish","type":"page","link":"https:\/\/popup4phone.com\/author\/","title":{"rendered":"Author"},"content":{"rendered":"","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"lp-author.php","meta":[],"_links":{"self":[{"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/pages\/132"}],"collection":[{"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/comments?post=132"}],"version-history":[{"count":2,"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/pages\/132\/revisions"}],"predecessor-version":[{"id":210,"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/pages\/132\/revisions\/210"}],"wp:attachment":[{"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/media?parent=132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}