wordpress如何设置多种支付方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wordpress如何设置多种支付方式相关的知识,希望对你有一定的参考价值。

参考技术A 关于wp的国内支付,一直都是很让人头疼的问题;因为是外国人开发的,所以对国内支付的插件,网上查询的结果是需要手动写代码实现

但是,对于我这样不了解php的人,这个就比较难。经过多次实验,我曾经试过无数个插件和无数次失败,终于找到了一款能够成功解决微信和支付宝支付的插件。

用插件的前提:你如果需要微信公众号支付,必须要已企业(商铺)认证的公众号才可以使用微信公众号支付

接下来详细步骤讲解:

1、下载插件

插件1: Payment gateway for WooCommerce – Woo WeChatPay

插件2:Payment gateway for WooCommerce – Woo Alipay

插件3: WP微信

上面一个是微信支付插件,一个是支付宝插件,最后一个是微信公众号自动登录插件

Wordpress - 用于多种帖子类型的分类法 - 如何仅为一个获取_terms / get_categories?

【中文标题】Wordpress - 用于多种帖子类型的分类法 - 如何仅为一个获取_terms / get_categories?【英文标题】:Wordpress - taxonomy used on multiple post types - how to get_terms / get_categories for just one? 【发布时间】:2018-09-18 16:06:41 【问题描述】:

我已经为多种帖子类型注册了分类法,认为这是设置网站而不是重复相同的分类法的最佳方式。

但是,现在我遇到了一个问题,我需要列出一个帖子类型的使用分类法,但它需要列出所有两种类型的分类法。我该如何解决这个问题? get_categories 或 get_terms 似乎都有一个选项来指定您想要获取分类的帖子类型。

编辑 注意:每个帖子类型也有多个分类法

谁能帮忙?

register_taxonomy( 
        'sectors',
        array('case-study', 'resource'),   //used in multiple post types
        [
            'labels' => [
                'name' => __( 'Sectors' ),
                'singular_name' => __( 'Sector' ),
            ],
            'hierarchical' => true,
            'show_admin_column' => true,
        ]
    );

    $sectors = get_categories( array('taxonomy' => 'sectors') );  //prints out selected taxonomies for both case studies and resources when I want just resources.

   $services = get_categories( array('taxonomy' => 'services') );  

【问题讨论】:

我认为这会有所帮助:wordpress.stackexchange.com/questions/96444/… 这对我不起作用,也许是因为当我的帖子类型有多个类别时,它已经为每个帖子类型考虑了一个类别? 【参考方案1】:

试试这个

<?php

     $custom_terms = get_terms('custom_taxonomy_name');

foreach($custom_terms as $custom_term) 
    wp_reset_query();
    $args = array('post_type' => 'custom_post_type_name',
        'tax_query' => array(
            array(
                'taxonomy' => 'custom_taxonomy_name',
                'field' => 'slug',
                'terms' => $custom_term->slug,
            ),
        ),
     );

     $loop = new WP_Query($args);
     if($loop->have_posts()) 
        echo '<h2>'.$custom_term->name.'</h2>';

        while($loop->have_posts()) : $loop->the_post();
            echo '<a href="'.get_permalink().'">'.get_the_title().'</a><br>';
        endwhile;
     

?>

【讨论】:

【参考方案2】:

我发现下面的代码就像一个魅力:)

function df_terms_clauses( $clauses, $taxonomy, $args ) 
    if ( isset( $args['post_type'] ) && ! empty( $args['post_type'] ) && $args['fields'] !== 'count' ) 
        global $wpdb;

        $post_types = array();

        if ( is_array( $args['post_type'] ) ) 
            foreach ( $args['post_type'] as $cpt ) 
                $post_types[] = "'" . $cpt . "'";
            
         else 
            $post_types[] = "'" . $args['post_type'] . "'";
        

        if ( ! empty( $post_types ) ) 
            $clauses['fields'] = 'DISTINCT ' . str_replace( 'tt.*', 'tt.term_taxonomy_id, tt.taxonomy, tt.description, tt.parent', $clauses['fields'] ) . ', COUNT(p.post_type) AS count';
            $clauses['join'] .= ' LEFT JOIN ' . $wpdb->term_relationships . ' AS r ON r.term_taxonomy_id = tt.term_taxonomy_id LEFT JOIN ' . $wpdb->posts . ' AS p ON p.ID = r.object_id';
            $clauses['where'] .= ' AND (p.post_type IN (' . implode( ',', $post_types ) . ') OR p.post_type IS NULL)';
            $clauses['orderby'] = 'GROUP BY t.term_id ' . $clauses['orderby'];

            //print_r( $clauses );
         
    
    return $clauses;


add_filter( 'terms_clauses', 'df_terms_clauses', 10, 3 );

【讨论】:

我也用这个。可惜 get_terms() 没有内置支持。 呃,这是一个非常丑陋的查询,无法使用 imo。【参考方案3】:
$terms = get_terms( 'animal_cat', array(
    'orderby'    => 'count',
    'hide_empty' => 0
) );
foreach( $terms as $term ) 

    // Define the query
    $args = array(
        'post_type' => 'animal',
        'animal_cat' => $term->slug
    );
    $query = new WP_Query( $args );


【讨论】:

这带来了大量的帖子。我正在寻找一系列类别

以上是关于wordpress如何设置多种支付方式的主要内容,如果未能解决你的问题,请参考以下文章

WooCommerce - 同时使用多种付款方式支付订单

美团怎么设置支付方式?

django实现多种支付并发订单处理

多种支付方式,多币种解决方案

Android 多种支付方式的优雅实现

全球网上零售巨头宣布接受60多种加密货币作为支付方式