( ! ) Warning: Undefined array key "ten_newest_tests" in /home/jlahijani/Sites/goodui.org/site/ready.php on line 1083
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.54073872624ProcessWire\returnPageArrayFromCookie( $cookiename = 'ten_newest_tests' ).../tests.php:7

( ! ) Warning: Undefined array key "ten_newest_tests" in /home/jlahijani/Sites/goodui.org/site/ready.php on line 1083
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.54073872624ProcessWire\returnPageArrayFromCookie( $cookiename = 'ten_newest_tests' ).../tests.php:7
Tests | GoodUI ( ! ) Deprecated: strip_tags(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/templates/_og.php on line 13 Call Stack #TimeMemoryFunctionLocation 10.0001465832{main}( ).../index.php:0 20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55 30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484 40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952 50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416 60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114 70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184 80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484 90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060 100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484 110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952 120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416 130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575 140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484 150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952 160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413 171.89085683840require( '/home/jlahijani/Sites/goodui.org/site/templates/_main.php ).../TemplateFile.php:340 181.89165714384include( '/home/jlahijani/Sites/goodui.org/site/templates/_og.php ).../_main.php:64 191.89275713080strip_tags( $string = NULL ).../_og.php:13 " />

All Latest 411 A/B Tests

Only Significant A/B Tests

Become a member to unlock the abiltiy to see the highest impact a/b tests. Being able to see the actual test results and sort by impact allows growth and experimentation teams to take action on the biggest gains first

MOST RECENT TESTS

Test #435 on Volders.de by Daria Kurchinskaia   Oct 17, 2022 Desktop Mobile Checkout

Daria Kurchinskaia Tested Pattern #9: Multiple Steps In Test #435 On Volders.de

In this experiment, a question about a customer's reason for purchase was broken out into a separate step and moved earlier in the process. In the control, this question was asked in the final checkout step along with a plan selection (Step 4 of 4). In the variation, this question was shifted as a standalone first step (Step 1 of 5). Impact on completed purchases was measured (for a contract cancellation service in this case).

Test #427 on Designlab.com by Daniel Shapiro   Aug 10, 2022 Desktop Mobile Checkout

Daniel Shapiro Tested Pattern #28: Easiest Fields First In Test #427 On Designlab.com

In this experiment, the course enrollment start date was moved from step 2 to step 1 of an enrollment / checkout flow. The test was run by Designlab - that offers design courses and education with a strong element of mentorship. Impact on progression to next step and completed transactions were measured.

Test #415 on Learnwithhomer.com by Stanley Zuo   Jun 09, 2022 Mobile Checkout

Stanley Zuo Tested Pattern #3: Fewer Form Fields In Test #415 On Learnwithhomer.com

Do fewer confirmation form fields matter? In this experiment, redundant password and email confirmation fields were removed during a signup / checkout funnel. Impact on signups was measured.

Test #414 on Volders.de by Frederik Fröhle   May 31, 2022 Desktop Mobile Checkout

Frederik Fröhle Tested Pattern #98: Auto Suggest In Test #414 On Volders.de

Does adding Google's address auto complete functionality to an address field help with higher form completions? This auto fill feature has been tested in the variation of a contract cancellation funnel. After selecting an auto completed address from a pulldown menu, the following fields were preselected: house number, zip code, city and country (potentially lowering friction?). Impact on successful form completions (contract cancellations) has been measured. Notice how the form also expanded progressively upon selecting the complete address in the variation.  

Test #412 on Volders.de by Frederik Fröhle   May 16, 2022 Desktop Mobile Checkout

Frederik Fröhle Tested Pattern #15: Bulleted Reassurances In Test #412 On Volders.de

The Volders experimentation team assumed that adding information about how long it might take to get a cancellation confirmation near a CTA Button would result in higher cancellation requests (the paid service being offered).

The variation contained additional copy translated from German to: "Most of our users receive their cancellation confirmation from <vendor> within 14 days by email or letter."

Test #403 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.63834033816ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
190.63834033816ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
200.63834035712ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
210.63834035712ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
220.63844036128ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
230.63844036128ProcessWire\TemplateFile->___render( ).../Wire.php:413
240.63844062808require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
251.09714666960ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 9750; public $name = '403'; public $parent = '/tests/'; public $template = 'test'; public $number = 403; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 9754'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
261.09714666960ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 9750; public $name = '403'; public $parent = '/tests/'; public $template = 'test'; public $number = 403; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 9754'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
271.09724668968ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
281.09724668968ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
291.09724669384ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
301.09724669384ProcessWire\TemplateFile->___render( ).../Wire.php:413
311.09734690080require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
321.09874692080ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
331.09874692080ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Mar 29, 2022 Desktop Mobile Checkout

Jakub Linowski Tested Pattern #42: Countdown Timer In Test #403

In this experiment, an urgency related message with a dynamic countdown timer was added on the final checkout screen. Impact on sales was measured.

Test #399 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.63834033816ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
190.63834033816ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
200.63834035712ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
210.63834035712ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
220.63844036128ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
230.63844036128ProcessWire\TemplateFile->___render( ).../Wire.php:413
240.63844062808require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
251.16294756376ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 9486; public $name = '399'; public $parent = '/tests/'; public $template = 'test'; public $number = 399; public $full_name = ''; public $tags = '2075'; public $metric_repeater = '(RepeaterPageArray) 9490|9491'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
261.16294756376ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 9486; public $name = '399'; public $parent = '/tests/'; public $template = 'test'; public $number = 399; public $full_name = ''; public $tags = '2075'; public $metric_repeater = '(RepeaterPageArray) 9490|9491'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
271.16294758384ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
281.16294758384ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
291.16304758800ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
301.16304758800ProcessWire\TemplateFile->___render( ).../Wire.php:413
311.16304779496require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
321.16444781496ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
331.16444781496ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Feb 27, 2022 Desktop Mobile Checkout

Jakub Linowski Tested Pattern #35: Floating Labels In Test #399

In this experiment, top-aligned field labels were tested against floating labels (with labels floating inside the form field itself).

Test #390 on Snocks.com by Melina Hess   Dec 21, 2021 Desktop Mobile Checkout

Melina Hess Tested Pattern #106: Back Buttons In Test #390 On Snocks.com

In this experiment, the variation has a "Back To Shopping Cart" link right underneath the checkout button. Impact on sales was measured.

Test #389 on Svsound.com by Keenan Davis   Dec 16, 2021 Desktop Mobile Checkout

Keenan Davis Tested Pattern #1: Remove Coupon Fields In Test #389 On Svsound.com

In this simple experiment, a highly visible coupon field was replaced with a less visible (but clickable) link in the variation. Clicking on the link would show the coupon field. Impact on sales and revenue was measured.

Test #383 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.63834033816ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
190.63834033816ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
200.63834035712ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
210.63834035712ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
220.63844036128ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
230.63844036128ProcessWire\TemplateFile->___render( ).../Wire.php:413
240.63844062808require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
251.30884991664ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 8932; public $name = '383'; public $parent = '/tests/'; public $template = 'test'; public $number = 383; public $full_name = ''; public $tags = [...]; public $metric_repeater = '(RepeaterPageArray) 8936'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
261.30884991664ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 8932; public $name = '383'; public $parent = '/tests/'; public $template = 'test'; public $number = 383; public $full_name = ''; public $tags = [...]; public $metric_repeater = '(RepeaterPageArray) 8936'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
271.30884993672ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
281.30884993672ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
291.30884994088ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
301.30884994088ProcessWire\TemplateFile->___render( ).../Wire.php:413
311.30895014784require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
321.31025016784ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
331.31025016784ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Nov 11, 2021 Desktop Checkout

Jakub Linowski Tested Pattern #123: Single Or Double Column Form Fields In Test #383

In this simple [inverted] experiment, the variation organized the form fields into a single column. The control had two columns of form fields.

Test #344 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.63834033816ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
190.63834033816ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
200.63834035712ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
210.63834035712ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
220.63844036128ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
230.63844036128ProcessWire\TemplateFile->___render( ).../Wire.php:413
240.63844062808require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
251.36675066192ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 7678; public $name = '344'; public $parent = '/tests/'; public $template = 'test'; public $number = 344; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7682'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
261.36675066192ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 7678; public $name = '344'; public $parent = '/tests/'; public $template = 'test'; public $number = 344; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7682'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
271.36685068200ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
281.36685068200ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
291.36685068616ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
301.36685068616ProcessWire\TemplateFile->___render( ).../Wire.php:413
311.36695089312require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
321.36825091056ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
331.36825091056ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Mar 11, 2021 Desktop Checkout

Jakub Linowski Tested Pattern #108: Frequently Asked Questions In Test #344

Three common delivery questions were answered at the bottom of a checkout page. 

Test #340 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.63834033816ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
190.63834033816ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
200.63834035712ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
210.63834035712ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
220.63844036128ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
230.63844036128ProcessWire\TemplateFile->___render( ).../Wire.php:413
240.63844062808require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
251.42655147584ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 7545; public $name = '340'; public $parent = '/tests/'; public $template = 'test'; public $number = 340; public $full_name = ''; public $tags = '2143'; public $metric_repeater = '(RepeaterPageArray) 7549'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
261.42655147584ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 7545; public $name = '340'; public $parent = '/tests/'; public $template = 'test'; public $number = 340; public $full_name = ''; public $tags = '2143'; public $metric_repeater = '(RepeaterPageArray) 7549'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
271.42665149592ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
281.42665149592ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
291.42665150008ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
301.42665150008ProcessWire\TemplateFile->___render( ).../Wire.php:413
311.42665170704require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
321.42805172448ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
331.42805172448ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Feb 25, 2021 Desktop Checkout

Jakub Linowski Tested Pattern #114: Less Or More Visible Prices In Test #340

In this experiment, the variation added a second total price at the bottom of the checkout screen just above the checkout button. The impact on sales was measured.

Test #320 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.63834033816ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
190.63834033816ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
200.63834035712ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
210.63834035712ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
220.63844036128ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
230.63844036128ProcessWire\TemplateFile->___render( ).../Wire.php:413
240.63844062808require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
251.48635212720ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 6103; public $name = '320'; public $parent = '/tests/'; public $template = 'test'; public $number = 320; public $full_name = ''; public $tags = '2599'; public $metric_repeater = '(RepeaterPageArray) 7438'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
261.48635212720ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 6103; public $name = '320'; public $parent = '/tests/'; public $template = 'test'; public $number = 320; public $full_name = ''; public $tags = '2599'; public $metric_repeater = '(RepeaterPageArray) 7438'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
271.48645214728ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
281.48645214728ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
291.48645215144ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
301.48645215144ProcessWire\TemplateFile->___render( ).../Wire.php:413
311.48655235840require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
321.48785237584ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
331.48785237584ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Oct 20, 2020 Desktop Checkout

Jakub Linowski Tested Pattern #49: Above The Fold Call To Action In Test #320

An extra "Place Order" button was duplicated above the fold on this checkout page. The control had a similar button further down at the bottom of the screen. The impact on total sales was measured from this change.

Test #61 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.63834033816ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
190.63834033816ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
200.63834035712ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
210.63834035712ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
220.63844036128ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
230.63844036128ProcessWire\TemplateFile->___render( ).../Wire.php:413
240.63844062808require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
251.54295278184ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 5767; public $name = '61'; public $parent = '/tests/'; public $template = 'test'; public $number = 61; public $full_name = ''; public $tags = '(PageArray) '; public $metric_repeater = '(RepeaterPageArray) 7395'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
261.54295278184ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 5767; public $name = '61'; public $parent = '/tests/'; public $template = 'test'; public $number = 61; public $full_name = ''; public $tags = '(PageArray) '; public $metric_repeater = '(RepeaterPageArray) 7395'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
271.54295280192ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
281.54295280192ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
291.54295280608ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
301.54295280608ProcessWire\TemplateFile->___render( ).../Wire.php:413
311.54305301304require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
321.54435301320ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
331.54435301320ucfirst( $string = NULL ).../ready.php:521
by Someone   Jun 26, 2020 Desktop Checkout

Someone Tested Pattern #9: Multiple Steps In Test #61

In this experiment, a single screen checkout was turned into a series of smaller steps in variation B. This was achieved by showing fewer fields on the first step, and shifting the remaining ones into a 3 step modal popup. The experiment measured successful transactions (sales).

Test #274 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.63834033816ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
190.63834033816ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
200.63834035712ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
210.63834035712ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
220.63844036128ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
230.63844036128ProcessWire\TemplateFile->___render( ).../Wire.php:413
240.63844062808require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
251.60145346544ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 4744; public $name = '274'; public $parent = '/tests/'; public $template = 'test'; public $number = 274; public $full_name = ''; public $tags = '2075'; public $metric_repeater = '(RepeaterPageArray) 7315'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
261.60145346544ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 4744; public $name = '274'; public $parent = '/tests/'; public $template = 'test'; public $number = 274; public $full_name = ''; public $tags = '2075'; public $metric_repeater = '(RepeaterPageArray) 7315'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
271.60155348552ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
281.60155348552ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
291.60155348968ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
301.60155348968ProcessWire\TemplateFile->___render( ).../Wire.php:413
311.60155369664require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
321.60295369680ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
331.60295369680ucfirst( $string = NULL ).../ready.php:521
by Someone   Dec 16, 2019 Desktop Mobile Checkout

Someone Tested Pattern #1: Remove Coupon Fields In Test #274

In this experiment, a fully visible coupon field (A) was made less visible by turning it into a default collaped link (B). Clicking on the link caused the coupon field to appear.

Test #267 on Backstage.com by Stanley Zuo   Nov 05, 2019 Mobile Checkout

Stanley Zuo Tested Pattern #99: Progress Bar In Test #267 On Backstage.com

A "Step X of 4" progress bar was tested against a fully visible one that was also clickable.

Test #261 on Valkexclusief.nl by Online Dialogue   Sep 20, 2019 Desktop Checkout

Online Dialogue Tested Pattern #111: Field Explanations In Test #261 On Valkexclusief.nl

In this experiment on Valk Exclusief's web site, a reason was provided for why the e-mail address is being collected. Google translation of the added text is as follows: "If your e-mail address is not yet known to us, we will ask you to add some missing information. Then you immediately benefit from our benefits such as the ValkLoyal savings program."

Test #232 on Yoast.com by Sjardo Janssen   Mar 15, 2019 Desktop Mobile Checkout

Sjardo Janssen Tested Pattern #6: Customer Star Ratings In Test #232 On Yoast.com

In this experiment, the Yoast team replaced one of the bulleted reassurances on their checkout page ("4.9 out of 5 stars" vs "24/7 Free support"). Raising the question - is free support or high reviews valued more? - Thanks Sjardo & Meike for sharing!

Test #229 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.63834033816ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
190.63834033816ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
200.63834035712ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
210.63834035712ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
220.63844036128ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
230.63844036128ProcessWire\TemplateFile->___render( ).../Wire.php:413
240.63844062808require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
251.78325586736ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 3440; public $name = '229'; public $parent = '/tests/'; public $template = 'test'; public $number = 229; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7205'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
261.78325586736ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 3440; public $name = '229'; public $parent = '/tests/'; public $template = 'test'; public $number = 229; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7205'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
271.78325588744ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
281.78325588744ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
291.78335589160ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
301.78335589160ProcessWire\TemplateFile->___render( ).../Wire.php:413
311.78335609856require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
321.78475609872ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
331.78475609872ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Mar 08, 2019 Desktop Mobile Checkout

Jakub Linowski Tested Pattern #99: Progress Bar In Test #229

Test #228 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0001465832{main}( ).../index.php:0
20.11072253496ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
30.11072253496ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
40.11082253912ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
50.11082253912ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
60.11572268720ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
70.13962302960ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
80.13962302960ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
90.13982304920ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
100.13982304920ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
110.13982305336ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
120.13982305336ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
130.14102305880ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
140.14102305880ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
150.14112307232ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
160.14112307232ProcessWire\TemplateFile->___render( ).../Wire.php:413
170.14132327792require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
180.63834033816ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
190.63834033816ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 11; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
200.63834035712ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
210.63834035712ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
220.63844036128ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
230.63844036128ProcessWire\TemplateFile->___render( ).../Wire.php:413
240.63844062808require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
251.83875645520ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 3420; public $name = '228'; public $parent = '/tests/'; public $template = 'test'; public $number = 228; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7203'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
261.83875645520ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 3420; public $name = '228'; public $parent = '/tests/'; public $template = 'test'; public $number = 228; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7203'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
271.83885647528ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
281.83885647528ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
291.83885647944ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
301.83885647944ProcessWire\TemplateFile->___render( ).../Wire.php:413
311.83885668640require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
321.84015668656ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
331.84015668656ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Mar 05, 2019 Desktop Mobile Checkout

Jakub Linowski Tested Pattern #99: Progress Bar In Test #228

The variation added a progress bar to one of the checkout steps for a ticket ordering site.