Plugin Directory

Changeset 3342062


Ignore:
Timestamp:
08/09/2025 04:00:39 PM (8 months ago)
Author:
marknokes
Message:

Version 2.5.6 - Add support for new WooCommerce PayPal Payments UI changes

Location:
subscriptions-for-woo
Files:
74 added
14 edited

Legend:

Unmodified
Added
Removed
  • subscriptions-for-woo/tags/2.5.5/classes/PPSFWOO/class-ppsfwoo-pay-pal.php

    r3273939 r3342062  
    4949     * @param null|int $product_id  The ID of the product to display the button for. Defaults to the current product ID if not provided.
    5050     * @param mixed    $button_text
    51      */
    52     public static function button($product_id = null, $button_text = '')
     51     * @param mixed    $style
     52     */
     53    public static function button($product_id = null, $button_text = '', $style = '')
    5354    {
    5455        $product_id = !empty($product_id) ? $product_id : get_the_ID();
     
    9697            'button_text' => $button_text,
    9798            'product_id' => $product_id,
     99            'style' => $style,
    98100        ]);
    99101    }
  • subscriptions-for-woo/tags/2.5.5/classes/PPSFWOO/class-ppsfwoo-product.php

    r3273939 r3342062  
    4040
    4141        $this->add_filters();
     42    }
     43
     44    /**
     45     * Filters the product query by user capability.
     46     *
     47     * @param array $query the query to be filtered
     48     *
     49     * @return array the filtered query
     50     */
     51    public function filter_product_query_by_capability($query)
     52    {
     53        if (is_admin()
     54            && isset($query['post_type'], $query['tax_query'][0]['terms'])
     55            && 'product' === $query['post_type']
     56            && current_user_can('ppsfwoo_manage_settings')
     57        ) {
     58            array_push($query['tax_query'][0]['terms'], self::TYPE);
     59        }
     60
     61        return $query;
    4262    }
    4363
     
    416436
    417437        add_action('admin_footer', [$this, 'custom_js']);
     438
     439        add_action('woocommerce_product_data_store_cpt_get_products_query', [$this, 'filter_product_query_by_capability']);
    418440    }
    419441
  • subscriptions-for-woo/tags/2.5.5/css/frontend.css

    r3273939 r3342062  
     1.ppsfwoo-subscribe-button-container {
     2  display: flex;
     3  justify-content: center;
     4  align-items: flex-start;
     5}
    16.ppsfwoo-subscribe-button {
    27  margin-bottom:15px;
     
    611}
    712.ppsfwoo-quantity-input {
    8   margin-bottom:15px;
     13  margin: 0 15px 15px 0;
    914}
    1015.inactive-subscription,
  • subscriptions-for-woo/tags/2.5.5/css/frontend.min.css

    r3273939 r3342062  
    1 .ppsfwoo-subscribe-button{margin-bottom:15px;font-size:1.5em;word-break:normal;width:100%}.ppsfwoo-quantity-input{margin-bottom:15px}.inactive-subscription,.ppsfwoo-cancelled{display:none}.subs-actions a{margin-right:10px;padding:10px}p.order-again{display:none}.please-wait{font-weight:bold}#waiting-ellipsis::after{content:'';animation:ellipsis-animation 2s infinite}.lds-ellipsis,.lds-ellipsis div{box-sizing:border-box}.lds-ellipsis{display:none;position:relative;width:80px;height:80px;margin:auto}.lds-ellipsis div{position:absolute;top:33.33333px;width:13.33333px;height:13.33333px;border-radius:50%;background:currentColor;animation-timing-function:cubic-bezier(0, 1, 1, 0)}.lds-ellipsis div:nth-child(1){left:8px;animation:lds-ellipsis1 0.6s infinite}.lds-ellipsis div:nth-child(2){left:8px;animation:lds-ellipsis2 0.6s infinite}.lds-ellipsis div:nth-child(3){left:32px;animation:lds-ellipsis2 0.6s infinite}.lds-ellipsis div:nth-child(4){left:56px;animation:lds-ellipsis3 0.6s infinite}@keyframes lds-ellipsis1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes lds-ellipsis3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes lds-ellipsis2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}@keyframes ellipsis-animation{25%{content:'. '}50%{content:'. .'}75%{content:'. . .'}}@media screen and (max-width:673px){.subs-actions a{display:block;margin-bottom:3px;text-align:center !important}.subs-actions::before{content:"" !important}.subs-actions a.inactive-subscription,.subs-actions a.ppsfwoo-cancelled{display:none}}
     1.ppsfwoo-subscribe-button-container{display:flex;justify-content:center;align-items:flex-start;}.ppsfwoo-subscribe-button{margin-bottom:15px;font-size:1.5em;word-break:normal;width:100%}.ppsfwoo-quantity-input{margin: 0 15px 15px 0}.inactive-subscription,.ppsfwoo-cancelled{display:none}.subs-actions a{margin-right:10px;padding:10px}p.order-again{display:none}.please-wait{font-weight:bold}#waiting-ellipsis::after{content:'';animation:ellipsis-animation 2s infinite}.lds-ellipsis,.lds-ellipsis div{box-sizing:border-box}.lds-ellipsis{display:none;position:relative;width:80px;height:80px;margin:auto}.lds-ellipsis div{position:absolute;top:33.33333px;width:13.33333px;height:13.33333px;border-radius:50%;background:currentColor;animation-timing-function:cubic-bezier(0, 1, 1, 0)}.lds-ellipsis div:nth-child(1){left:8px;animation:lds-ellipsis1 0.6s infinite}.lds-ellipsis div:nth-child(2){left:8px;animation:lds-ellipsis2 0.6s infinite}.lds-ellipsis div:nth-child(3){left:32px;animation:lds-ellipsis2 0.6s infinite}.lds-ellipsis div:nth-child(4){left:56px;animation:lds-ellipsis3 0.6s infinite}@keyframes lds-ellipsis1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes lds-ellipsis3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes lds-ellipsis2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}@keyframes ellipsis-animation{25%{content:'. '}50%{content:'. .'}75%{content:'. . .'}}@media screen and (max-width:673px){.subs-actions a{display:block;margin-bottom:3px;text-align:center !important}.subs-actions::before{content:"" !important}.subs-actions a.inactive-subscription,.subs-actions a.ppsfwoo-cancelled{display:none}}
  • subscriptions-for-woo/tags/2.5.5/css/style.css

    r3273939 r3342062  
    3535  font-size: 1.25em;
    3636  margin-left: 20px;
     37}
     38.tab-content ul {
     39  list-style:initial;
     40  margin-left: 1.5em;
    3741}
    3842.tab-content,
  • subscriptions-for-woo/tags/2.5.5/css/style.min.css

    r3273939 r3342062  
    1 .copy-text{position:absolute;left:-9999px}table{text-align:left;font-family:Arial, Helvetica, sans-serif;border-collapse:collapse}.flex-container{display:flex;flex-direction:row}.flex-container div.partial-width{width:75%}.flex-container div.full-width{width:100%}.flex-container div{overflow:scroll}.go-pro{border:1px solid #c3c4c7;padding:0 20px 20px;margin-top:6.5em;background:#fff;max-width:600px}.go-pro .pro-name{color:#dc2626;line-height:1.5em}.go-pro ul li{list-style:square;font-size:1.25em;margin-left:20px}.hide,.tab-content{display:none}.spinner{float:none}.pp-inner-table td,.pp-inner-table th{border:1px solid #ddd;padding:8px;vertical-align:middle;text-align:center}.pp-inner-table tr:nth-child(even){background-color:#f2f2f2}.pp-inner-table tr:hover{background-color:#ddd}.pp-inner-table th{background-color:#505050;color:white}.pagination{font-size:1.25em;margin:20px 0}.pagination a{padding:8px 12px;line-height:2em;text-decoration:none;border:1px solid;background:#505050;color:#fff}.pagination a.current{font-weight:bold;text-decoration:underline}.pagination a:focus{box-shadow:none}.notice-error,div.error{position:relative;z-index:2;width:75%;margin:auto}.tab-content .button{margin-top:5px}div.tab-content{background:#fff;padding:2em;border-left:1px solid;border-right:1px solid;border-bottom:1px solid;border-top:8px solid}.tooltip.status{height:25px;width:25px;border-radius:50%;display:inline-block}.status.green{background-color:#3cb371}.status.red{background-color:red}.status.orange{background-color:orange}.tooltip{position:relative;display:inline-block}.tooltip-text{visibility:hidden;background-color:#555;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:125%;left:50%;margin-left:-60px;opacity:0;transition:opacity 0.3s}.tooltip:hover .tooltip-text{visibility:visible;opacity:1}.disabled-link{pointer-events:none;color:gray}@media (max-width: 800px){.flex-container div.partial-width{width:100%}.flex-container{flex-direction:column}.go-pro{max-width:100%}}
     1.copy-text{position:absolute;left:-9999px}table{text-align:left;font-family:Arial, Helvetica, sans-serif;border-collapse:collapse}.flex-container{display:flex;flex-direction:row}.flex-container div.partial-width{width:75%}.flex-container div.full-width{width:100%}.flex-container div{overflow:scroll}.go-pro{border:1px solid #c3c4c7;padding:0 20px 20px;margin-top:6.5em;background:#fff;max-width:600px}.go-pro .pro-name{color:#dc2626;line-height:1.5em}.go-pro ul li{list-style:square;font-size:1.25em;margin-left:20px}.tab-content ul{list-style:initial;margin-left:1.5em}.hide,.tab-content{display:none}.spinner{float:none}.pp-inner-table td,.pp-inner-table th{border:1px solid #ddd;padding:8px;vertical-align:middle;text-align:center}.pp-inner-table tr:nth-child(even){background-color:#f2f2f2}.pp-inner-table tr:hover{background-color:#ddd}.pp-inner-table th{background-color:#505050;color:white}.pagination{font-size:1.25em;margin:20px 0}.pagination a{padding:8px 12px;line-height:2em;text-decoration:none;border:1px solid;background:#505050;color:#fff}.pagination a.current{font-weight:bold;text-decoration:underline}.pagination a:focus{box-shadow:none}.notice-error,div.error{position:relative;z-index:2;width:75%;margin:auto}.tab-content .button{margin-top:5px}div.tab-content{background:#fff;padding:2em;border-left:1px solid;border-right:1px solid;border-bottom:1px solid;border-top:8px solid}.tooltip.status{height:25px;width:25px;border-radius:50%;display:inline-block}.status.green{background-color:#3cb371}.status.red{background-color:red}.status.orange{background-color:orange}.tooltip{position:relative;display:inline-block}.tooltip-text{visibility:hidden;background-color:#555;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:125%;left:50%;margin-left:-60px;opacity:0;transition:opacity 0.3s}.tooltip:hover .tooltip-text{visibility:visible;opacity:1}.disabled-link{pointer-events:none;color:gray}@media (max-width: 800px){.flex-container div.partial-width{width:100%}.flex-container{flex-direction:column}.go-pro{max-width:100%}}
  • subscriptions-for-woo/tags/2.5.5/templates/paypal-button.php

    r3273939 r3342062  
    33} ?>
    44
    5 <div>
     5<div class='ppsfwoo-subscribe-button-container'>
    66
    77    <div class='lds-ellipsis' id='lds-ellipsis-<?php echo esc_attr($product_id); ?>'><div></div><div></div><div></div><div></div></div>
     
    99    <div id="ppsfwoo-quantity-input-container-<?php echo esc_attr($product_id); ?>"></div>
    1010
    11     <button class='ppsfwoo-subscribe-button' id='ppsfwoo-subscribe-button-<?php echo esc_attr($product_id); ?>'><?php echo esc_html($button_text); ?></button>
     11    <button style='<?php echo esc_attr($style); ?>' class='ppsfwoo-subscribe-button' id='ppsfwoo-subscribe-button-<?php echo esc_attr($product_id); ?>'><?php echo esc_html($button_text); ?></button>
    1212
    1313</div>
  • subscriptions-for-woo/trunk/classes/PPSFWOO/class-ppsfwoo-pay-pal.php

    r3273939 r3342062  
    4949     * @param null|int $product_id  The ID of the product to display the button for. Defaults to the current product ID if not provided.
    5050     * @param mixed    $button_text
    51      */
    52     public static function button($product_id = null, $button_text = '')
     51     * @param mixed    $style
     52     */
     53    public static function button($product_id = null, $button_text = '', $style = '')
    5354    {
    5455        $product_id = !empty($product_id) ? $product_id : get_the_ID();
     
    9697            'button_text' => $button_text,
    9798            'product_id' => $product_id,
     99            'style' => $style,
    98100        ]);
    99101    }
  • subscriptions-for-woo/trunk/classes/PPSFWOO/class-ppsfwoo-product.php

    r3261715 r3342062  
    4040
    4141        $this->add_filters();
     42    }
     43
     44    /**
     45     * Filters the product query by user capability.
     46     *
     47     * @param array $query the query to be filtered
     48     *
     49     * @return array the filtered query
     50     */
     51    public function filter_product_query_by_capability($query)
     52    {
     53        if (is_admin()
     54            && isset($query['post_type'], $query['tax_query'][0]['terms'])
     55            && 'product' === $query['post_type']
     56            && current_user_can('ppsfwoo_manage_settings')
     57        ) {
     58            array_push($query['tax_query'][0]['terms'], self::TYPE);
     59        }
     60
     61        return $query;
    4262    }
    4363
     
    416436
    417437        add_action('admin_footer', [$this, 'custom_js']);
     438
     439        add_action('woocommerce_product_data_store_cpt_get_products_query', [$this, 'filter_product_query_by_capability']);
    418440    }
    419441
  • subscriptions-for-woo/trunk/css/frontend.css

    r3273939 r3342062  
     1.ppsfwoo-subscribe-button-container {
     2  display: flex;
     3  justify-content: center;
     4  align-items: flex-start;
     5}
    16.ppsfwoo-subscribe-button {
    27  margin-bottom:15px;
     
    611}
    712.ppsfwoo-quantity-input {
    8   margin-bottom:15px;
     13  margin: 0 15px 15px 0;
    914}
    1015.inactive-subscription,
  • subscriptions-for-woo/trunk/css/frontend.min.css

    r3273939 r3342062  
    1 .ppsfwoo-subscribe-button{margin-bottom:15px;font-size:1.5em;word-break:normal;width:100%}.ppsfwoo-quantity-input{margin-bottom:15px}.inactive-subscription,.ppsfwoo-cancelled{display:none}.subs-actions a{margin-right:10px;padding:10px}p.order-again{display:none}.please-wait{font-weight:bold}#waiting-ellipsis::after{content:'';animation:ellipsis-animation 2s infinite}.lds-ellipsis,.lds-ellipsis div{box-sizing:border-box}.lds-ellipsis{display:none;position:relative;width:80px;height:80px;margin:auto}.lds-ellipsis div{position:absolute;top:33.33333px;width:13.33333px;height:13.33333px;border-radius:50%;background:currentColor;animation-timing-function:cubic-bezier(0, 1, 1, 0)}.lds-ellipsis div:nth-child(1){left:8px;animation:lds-ellipsis1 0.6s infinite}.lds-ellipsis div:nth-child(2){left:8px;animation:lds-ellipsis2 0.6s infinite}.lds-ellipsis div:nth-child(3){left:32px;animation:lds-ellipsis2 0.6s infinite}.lds-ellipsis div:nth-child(4){left:56px;animation:lds-ellipsis3 0.6s infinite}@keyframes lds-ellipsis1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes lds-ellipsis3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes lds-ellipsis2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}@keyframes ellipsis-animation{25%{content:'. '}50%{content:'. .'}75%{content:'. . .'}}@media screen and (max-width:673px){.subs-actions a{display:block;margin-bottom:3px;text-align:center !important}.subs-actions::before{content:"" !important}.subs-actions a.inactive-subscription,.subs-actions a.ppsfwoo-cancelled{display:none}}
     1.ppsfwoo-subscribe-button-container{display:flex;justify-content:center;align-items:flex-start;}.ppsfwoo-subscribe-button{margin-bottom:15px;font-size:1.5em;word-break:normal;width:100%}.ppsfwoo-quantity-input{margin: 0 15px 15px 0}.inactive-subscription,.ppsfwoo-cancelled{display:none}.subs-actions a{margin-right:10px;padding:10px}p.order-again{display:none}.please-wait{font-weight:bold}#waiting-ellipsis::after{content:'';animation:ellipsis-animation 2s infinite}.lds-ellipsis,.lds-ellipsis div{box-sizing:border-box}.lds-ellipsis{display:none;position:relative;width:80px;height:80px;margin:auto}.lds-ellipsis div{position:absolute;top:33.33333px;width:13.33333px;height:13.33333px;border-radius:50%;background:currentColor;animation-timing-function:cubic-bezier(0, 1, 1, 0)}.lds-ellipsis div:nth-child(1){left:8px;animation:lds-ellipsis1 0.6s infinite}.lds-ellipsis div:nth-child(2){left:8px;animation:lds-ellipsis2 0.6s infinite}.lds-ellipsis div:nth-child(3){left:32px;animation:lds-ellipsis2 0.6s infinite}.lds-ellipsis div:nth-child(4){left:56px;animation:lds-ellipsis3 0.6s infinite}@keyframes lds-ellipsis1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes lds-ellipsis3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes lds-ellipsis2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}@keyframes ellipsis-animation{25%{content:'. '}50%{content:'. .'}75%{content:'. . .'}}@media screen and (max-width:673px){.subs-actions a{display:block;margin-bottom:3px;text-align:center !important}.subs-actions::before{content:"" !important}.subs-actions a.inactive-subscription,.subs-actions a.ppsfwoo-cancelled{display:none}}
  • subscriptions-for-woo/trunk/css/style.css

    r3258064 r3342062  
    3535  font-size: 1.25em;
    3636  margin-left: 20px;
     37}
     38.tab-content ul {
     39  list-style:initial;
     40  margin-left: 1.5em;
    3741}
    3842.tab-content,
  • subscriptions-for-woo/trunk/css/style.min.css

    r3258064 r3342062  
    1 .copy-text{position:absolute;left:-9999px}table{text-align:left;font-family:Arial, Helvetica, sans-serif;border-collapse:collapse}.flex-container{display:flex;flex-direction:row}.flex-container div.partial-width{width:75%}.flex-container div.full-width{width:100%}.flex-container div{overflow:scroll}.go-pro{border:1px solid #c3c4c7;padding:0 20px 20px;margin-top:6.5em;background:#fff;max-width:600px}.go-pro .pro-name{color:#dc2626;line-height:1.5em}.go-pro ul li{list-style:square;font-size:1.25em;margin-left:20px}.hide,.tab-content{display:none}.spinner{float:none}.pp-inner-table td,.pp-inner-table th{border:1px solid #ddd;padding:8px;vertical-align:middle;text-align:center}.pp-inner-table tr:nth-child(even){background-color:#f2f2f2}.pp-inner-table tr:hover{background-color:#ddd}.pp-inner-table th{background-color:#505050;color:white}.pagination{font-size:1.25em;margin:20px 0}.pagination a{padding:8px 12px;line-height:2em;text-decoration:none;border:1px solid;background:#505050;color:#fff}.pagination a.current{font-weight:bold;text-decoration:underline}.pagination a:focus{box-shadow:none}.notice-error,div.error{position:relative;z-index:2;width:75%;margin:auto}.tab-content .button{margin-top:5px}div.tab-content{background:#fff;padding:2em;border-left:1px solid;border-right:1px solid;border-bottom:1px solid;border-top:8px solid}.tooltip.status{height:25px;width:25px;border-radius:50%;display:inline-block}.status.green{background-color:#3cb371}.status.red{background-color:red}.status.orange{background-color:orange}.tooltip{position:relative;display:inline-block}.tooltip-text{visibility:hidden;background-color:#555;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:125%;left:50%;margin-left:-60px;opacity:0;transition:opacity 0.3s}.tooltip:hover .tooltip-text{visibility:visible;opacity:1}.disabled-link{pointer-events:none;color:gray}@media (max-width: 800px){.flex-container div.partial-width{width:100%}.flex-container{flex-direction:column}.go-pro{max-width:100%}}
     1.copy-text{position:absolute;left:-9999px}table{text-align:left;font-family:Arial, Helvetica, sans-serif;border-collapse:collapse}.flex-container{display:flex;flex-direction:row}.flex-container div.partial-width{width:75%}.flex-container div.full-width{width:100%}.flex-container div{overflow:scroll}.go-pro{border:1px solid #c3c4c7;padding:0 20px 20px;margin-top:6.5em;background:#fff;max-width:600px}.go-pro .pro-name{color:#dc2626;line-height:1.5em}.go-pro ul li{list-style:square;font-size:1.25em;margin-left:20px}.tab-content ul{list-style:initial;margin-left:1.5em}.hide,.tab-content{display:none}.spinner{float:none}.pp-inner-table td,.pp-inner-table th{border:1px solid #ddd;padding:8px;vertical-align:middle;text-align:center}.pp-inner-table tr:nth-child(even){background-color:#f2f2f2}.pp-inner-table tr:hover{background-color:#ddd}.pp-inner-table th{background-color:#505050;color:white}.pagination{font-size:1.25em;margin:20px 0}.pagination a{padding:8px 12px;line-height:2em;text-decoration:none;border:1px solid;background:#505050;color:#fff}.pagination a.current{font-weight:bold;text-decoration:underline}.pagination a:focus{box-shadow:none}.notice-error,div.error{position:relative;z-index:2;width:75%;margin:auto}.tab-content .button{margin-top:5px}div.tab-content{background:#fff;padding:2em;border-left:1px solid;border-right:1px solid;border-bottom:1px solid;border-top:8px solid}.tooltip.status{height:25px;width:25px;border-radius:50%;display:inline-block}.status.green{background-color:#3cb371}.status.red{background-color:red}.status.orange{background-color:orange}.tooltip{position:relative;display:inline-block}.tooltip-text{visibility:hidden;background-color:#555;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:125%;left:50%;margin-left:-60px;opacity:0;transition:opacity 0.3s}.tooltip:hover .tooltip-text{visibility:visible;opacity:1}.disabled-link{pointer-events:none;color:gray}@media (max-width: 800px){.flex-container div.partial-width{width:100%}.flex-container{flex-direction:column}.go-pro{max-width:100%}}
  • subscriptions-for-woo/trunk/templates/paypal-button.php

    r3258064 r3342062  
    33} ?>
    44
    5 <div>
     5<div class='ppsfwoo-subscribe-button-container'>
    66
    77    <div class='lds-ellipsis' id='lds-ellipsis-<?php echo esc_attr($product_id); ?>'><div></div><div></div><div></div><div></div></div>
     
    99    <div id="ppsfwoo-quantity-input-container-<?php echo esc_attr($product_id); ?>"></div>
    1010
    11     <button class='ppsfwoo-subscribe-button' id='ppsfwoo-subscribe-button-<?php echo esc_attr($product_id); ?>'><?php echo esc_html($button_text); ?></button>
     11    <button style='<?php echo esc_attr($style); ?>' class='ppsfwoo-subscribe-button' id='ppsfwoo-subscribe-button-<?php echo esc_attr($product_id); ?>'><?php echo esc_html($button_text); ?></button>
    1212
    1313</div>
Note: See TracChangeset for help on using the changeset viewer.