Bird
Raised Fist0
Wordpressframework~20 mins

Payment gateway configuration in Wordpress - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Payment Gateway Pro
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
How does the payment gateway plugin handle transaction success?
In a WordPress payment gateway plugin, what happens when a transaction is successfully processed?
AThe plugin sends an email to the admin but leaves the order status as 'pending'.
BThe plugin immediately refunds the payment and cancels the order.
CThe plugin logs the transaction but does not update the order status or redirect the user.
DThe plugin redirects the user to a thank you page and updates the order status to 'completed'.
Attempts:
2 left
💡 Hint
Think about what a user expects after a successful payment.
📝 Syntax
intermediate
2:00remaining
Identify the correct hook to add a payment gateway in WooCommerce
Which WordPress hook is used to register a new payment gateway class in WooCommerce?
Awoocommerce_payment_gateways
Binit_payment_gateway
Cwoocommerce_add_gateway
Dpayment_gateway_register
Attempts:
2 left
💡 Hint
Look for the filter that modifies the list of payment gateways.
🔧 Debug
advanced
3:00remaining
Why does the payment gateway fail to process payments?
Given this snippet from a WordPress payment gateway plugin, why does the payment not process correctly? function process_payment($order_id) { $order = wc_get_order($order_id); $result = $this->send_request_to_gateway($order); if ($result == 'success') { $order->update_status('completed'); return array('result' => 'success', 'redirect' => $this->get_return_url($order)); } return array('result' => 'fail'); } Options:
Wordpress
function process_payment($order_id) {
  $order = wc_get_order($order_id);
  $result = $this->send_request_to_gateway($order);
  if ($result == 'success') {
    $order->update_status('completed');
    return array('result' => 'success', 'redirect' => $this->get_return_url($order));
  }
  return array('result' => 'fail');
}
AThe update_status method is called before payment confirmation from the gateway.
BThe send_request_to_gateway method returns a string, but the code expects a boolean.
CThe function does not call $order->payment_complete() to finalize the payment.
DThe get_return_url method is missing a required parameter.
Attempts:
2 left
💡 Hint
Check WooCommerce payment completion methods.
🧠 Conceptual
advanced
2:00remaining
What is the role of IPN (Instant Payment Notification) in payment gateways?
In WordPress payment gateway integration, what is the main purpose of IPN (Instant Payment Notification)?
ATo generate the payment form HTML for the checkout page.
BTo notify the website asynchronously about payment status changes from the gateway server.
CTo encrypt the payment data before sending it to the gateway.
DTo redirect the user to the payment page for entering card details.
Attempts:
2 left
💡 Hint
Think about how the gateway communicates payment results back to the site.
❓ state_output
expert
2:00remaining
What is the final order status after a failed payment in WooCommerce?
If a payment gateway returns a failure during payment processing in WooCommerce, what is the typical order status set by default?
Afailed
Bcancelled
Cpending
Don-hold
Attempts:
2 left
💡 Hint
Consider the status that indicates a payment attempt was made but did not succeed.

Practice

(1/5)
1. What is the main purpose of configuring a payment gateway in a WordPress site?
easy
A. To allow customers to make payments securely on the website
B. To change the website's theme colors
C. To add new blog posts automatically
D. To improve website loading speed

Solution

  1. Step 1: Understand what a payment gateway does

    A payment gateway connects the website to payment services to process payments.
  2. Step 2: Identify the correct purpose in the options

    Only To allow customers to make payments securely on the website mentions secure payments, which matches the gateway's role.
  3. Final Answer:

    To allow customers to make payments securely on the website -> Option A
  4. Quick Check:

    Payment gateway = secure payments [OK]
Hint: Payment gateways handle payments, not design or content [OK]
Common Mistakes:
  • Confusing payment gateway with website design features
  • Thinking it manages blog posts
  • Assuming it speeds up the site
2. Which code snippet correctly adds a new payment gateway class in WooCommerce for WordPress?
easy
A. add_filter('woocommerce_payment_gateways', 'add_my_gateway'); function add_my_gateway($gateways) { $gateways[] = 'WC_Gateway_MyGateway'; return $gateways; }
B. add_action('woocommerce_payment_gateways', 'add_my_gateway'); function add_my_gateway() { return 'WC_Gateway_MyGateway'; }
C. add_filter('woocommerce_payment_gateways', 'add_my_gateway'); function add_my_gateway() { return 'WC_Gateway_MyGateway'; }
D. add_action('woocommerce_payment_gateways', 'add_my_gateway'); function add_my_gateway($gateways) { $gateways[] = 'WC_Gateway_MyGateway'; }

Solution

  1. Step 1: Identify correct WordPress hook type

    To modify gateways list, use add_filter, not add_action.
  2. Step 2: Check function signature and return

    The function must accept $gateways array, add new gateway, and return the updated array.
  3. Final Answer:

    add_filter with function adding to $gateways and returning it -> Option A
  4. Quick Check:

    Filter modifies list and returns it [OK]
Hint: Use add_filter with $gateways parameter and return updated array [OK]
Common Mistakes:
  • Using add_action instead of add_filter
  • Not returning the updated gateways array
  • Missing $gateways parameter in function
3. Given this code snippet in a WordPress plugin for WooCommerce payment gateway registration:
add_filter('woocommerce_payment_gateways', function($gateways) {
  $gateways[] = 'WC_Gateway_Custom';
  return $gateways;
});

What will happen after this code runs?
medium
A. Nothing changes because add_filter is used incorrectly
B. The payment gateways list will be replaced with only 'WC_Gateway_Custom'
C. An error will occur because the function does not return anything
D. The custom payment gateway 'WC_Gateway_Custom' will be added to the available gateways list

Solution

  1. Step 1: Understand the add_filter usage

    The anonymous function receives $gateways array, adds a new gateway, and returns the updated array.
  2. Step 2: Predict the effect on WooCommerce gateways

    The new gateway 'WC_Gateway_Custom' is appended, so it becomes available alongside existing gateways.
  3. Final Answer:

    The custom payment gateway 'WC_Gateway_Custom' will be added to the available gateways list -> Option D
  4. Quick Check:

    Appending gateway and returning list adds it [OK]
Hint: Returning updated gateways array adds new gateway [OK]
Common Mistakes:
  • Thinking the list is replaced instead of appended
  • Assuming no return means error
  • Confusing add_filter with add_action
4. You wrote this code to add a payment gateway but it causes a fatal error:
add_filter('woocommerce_payment_gateways', 'add_gateway');
function add_gateway() {
  $gateways[] = 'WC_Gateway_New';
  return $gateways;
}

What is the main problem?
medium
A. The function should use add_action instead of add_filter
B. The function add_gateway does not accept the $gateways parameter
C. The gateway class name is incorrect
D. The function does not return anything

Solution

  1. Step 1: Check function parameters for filter hook

    Filter functions must accept the value they modify, here $gateways array.
  2. Step 2: Identify missing parameter causing error

    Function add_gateway() has no parameters, so $gateways is undefined inside, causing error.
  3. Final Answer:

    The function add_gateway does not accept the $gateways parameter -> Option B
  4. Quick Check:

    Filter function needs $gateways parameter [OK]
Hint: Filter functions must accept and return the filtered value [OK]
Common Mistakes:
  • Omitting the parameter in the filter function
  • Using add_action instead of add_filter
  • Not returning the updated array
5. You want to configure a payment gateway in WooCommerce that only appears for customers from the US. Which approach correctly applies this condition in your gateway class?
hard
A. Use CSS to hide the payment option on the checkout page for non-US customers
B. Add a filter to remove the gateway from the list after checkout is complete
C. Override the is_available() method in your gateway class to check the customer's billing country and return true only if it is 'US'
D. Set the gateway to be enabled only in the WooCommerce settings without any code

Solution

  1. Step 1: Understand how to conditionally show gateways

    WooCommerce gateways can override the is_available() method to control when they appear.
  2. Step 2: Apply country check in is_available()

    Checking the customer's billing country inside is_available() and returning true only for 'US' ensures correct display.
  3. Final Answer:

    Override is_available() to check billing country and return true only for 'US' -> Option C
  4. Quick Check:

    Use is_available() for conditional gateway display [OK]
Hint: Use is_available() method to control gateway visibility by condition [OK]
Common Mistakes:
  • Trying to hide gateway with CSS (not secure or reliable)
  • Filtering gateways after checkout (too late)
  • Only enabling gateway in settings without conditions
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard