effective_learndash 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -10
- data/app/controllers/admin/learndash_courses_controller.rb +1 -1
- data/app/datatables/admin/effective_learndash_courses_datatable.rb +1 -1
- data/app/datatables/admin/effective_learndash_users_datatable.rb +1 -1
- data/app/datatables/effective_course_registrations_datatable.rb +4 -4
- data/app/datatables/effective_learndash_courses_datatable.rb +5 -3
- data/app/datatables/effective_learndash_enrollments_datatable.rb +5 -5
- data/app/models/concerns/effective_learndash_course_registration.rb +8 -3
- data/app/models/effective/learndash_api.rb +5 -5
- data/app/views/admin/learndash_courses/_form.html.haml +1 -1
- data/app/views/admin/learndash_courses/_learndash_course.html.haml +3 -3
- data/app/views/admin/learndash_owners/_form.html.haml +1 -1
- data/app/views/admin/learndash_users/_form.html.haml +1 -1
- data/app/views/admin/learndash_users/_learndash_user.html.haml +4 -4
- data/app/views/effective/course_registrations/_summary.html.haml +11 -7
- data/app/views/effective/course_registrations/course.html.haml +2 -3
- data/app/views/effective/course_registrations/start.html.haml +7 -6
- data/app/views/effective/course_registrations/submitted.html.haml +0 -1
- data/app/views/effective/learndash/_dashboard.html.haml +13 -15
- data/app/views/effective/learndash_courses/_learndash_course.html.haml +1 -1
- data/config/routes.rb +1 -1
- data/lib/effective_learndash/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43df5441a08d0a4f6974c1833c3967e007f0b84d29bb0211a574b9b5803ecf6e
|
4
|
+
data.tar.gz: '019f88430901977c58b6ae5a2266aa9b27a548689d1d14aa78926ec32639f582'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebb0420d408114b919048393146dc0fbfb25c66f635672e8da07beef5847f78388e11cc08b243299db4ef132cd220025ba945715b83e87440e957b37f9ed71f2
|
7
|
+
data.tar.gz: dc6af37f79445a95ebed1e4501be634ec795d5e1f7ca09e997087e25a0aa95cb8d392a892cd51207998d2ea0d2c30ba885fc8865364860fee0d9260d70cdcb32
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# Effective
|
1
|
+
# Effective LearnDash
|
2
2
|
|
3
|
-
Create Wordpress users and read
|
3
|
+
Create Wordpress users and read LearnDash course progress. This is an unofficial integration that is not supported or affiliated with WordPress or LearnDash.
|
4
4
|
|
5
5
|
## Getting Started
|
6
6
|
|
@@ -91,29 +91,29 @@ if user.admin?
|
|
91
91
|
end
|
92
92
|
```
|
93
93
|
|
94
|
-
## Configuring
|
94
|
+
## Configuring LearnDash
|
95
95
|
|
96
|
-
Your
|
96
|
+
Your WordPress should be configured ahead of time with the LearnDash plugin.
|
97
97
|
|
98
98
|
Please generate an application password via:
|
99
99
|
|
100
100
|
https://make.wordpress.org/core/2020/11/05/application-passwords-integration-guide/
|
101
101
|
|
102
|
-
and fill in the username/password details in config/initializers/
|
102
|
+
and fill in the username/password details in config/initializers/effective_learndash.rb
|
103
103
|
|
104
|
-
## Working with
|
104
|
+
## Working with LearnDash
|
105
105
|
|
106
106
|
Visit `/admin/learndash_courses` and Refresh the list of Courses.
|
107
107
|
|
108
|
-
Create a New
|
108
|
+
Create a New LearnDash User will create a new WordPress/LearnDash account with a username/password according to the settings in the config file.
|
109
109
|
|
110
110
|
When you create a user, you only get access to the password once. So any existing users will have an unknown password.
|
111
111
|
|
112
|
-
Create a new
|
112
|
+
Create a new LearnDash Enrollment to enroll a LearnDash user into a course. This will begin tracking their progress.
|
113
113
|
|
114
|
-
There are no webhooks or callbacks from
|
114
|
+
There are no webhooks or callbacks from LearnDash, everything is a GET request that updates the local database.
|
115
115
|
|
116
|
-
You can refresh an entire
|
116
|
+
You can refresh an entire LearnDash user in one operation and it will sync the entire user at once, `user.learndash_user.refresh!`
|
117
117
|
|
118
118
|
## License
|
119
119
|
|
@@ -7,7 +7,7 @@ module Admin
|
|
7
7
|
|
8
8
|
def refresh
|
9
9
|
resource_scope.refresh!
|
10
|
-
flash[:success] = "Successfully refreshed Courses from
|
10
|
+
flash[:success] = "Successfully refreshed Courses from LearnDash"
|
11
11
|
redirect_to effective_learndash.admin_learndash_courses_path
|
12
12
|
end
|
13
13
|
|
@@ -2,7 +2,7 @@ module Admin
|
|
2
2
|
class EffectiveLearndashUsersDatatable < Effective::Datatable
|
3
3
|
datatable do
|
4
4
|
col :id, visible: false
|
5
|
-
col :user_id, label: '
|
5
|
+
col :user_id, label: 'LearnDash Id', visible: false
|
6
6
|
|
7
7
|
col :last_refreshed, visible: true do |user|
|
8
8
|
time_ago_in_words(user.last_synced_at) + ' ago'
|
@@ -6,12 +6,12 @@ class EffectiveCourseRegistrationsDatatable < Effective::Datatable
|
|
6
6
|
col :token, visible: false
|
7
7
|
col :created_at, visible: false
|
8
8
|
|
9
|
-
col
|
10
|
-
registration.
|
9
|
+
col :learndash_course, label: 'Title', search: :string do |registration|
|
10
|
+
registration.learndash_course.to_s
|
11
11
|
end
|
12
12
|
|
13
|
-
col
|
14
|
-
registration.
|
13
|
+
col(:submitted_at, label: 'Registered on') do |registration|
|
14
|
+
registration.submitted_at&.strftime('%F') || 'Incomplete'
|
15
15
|
end
|
16
16
|
|
17
17
|
col :owner, visible: false, search: :string
|
@@ -10,12 +10,14 @@ class EffectiveLearndashCoursesDatatable < Effective::Datatable
|
|
10
10
|
order :title
|
11
11
|
col :id, visible: false
|
12
12
|
|
13
|
-
col :title
|
14
|
-
|
13
|
+
col :title do |learndash_course|
|
14
|
+
learndash_course.to_s
|
15
15
|
end
|
16
16
|
|
17
17
|
actions_col show: false do |learndash_course|
|
18
|
-
if learndash_course.
|
18
|
+
if current_user.learndash_enrollment(course: learndash_course).present?
|
19
|
+
'Registered. Please access from the home dashboard or applicant wizard.'
|
20
|
+
elsif learndash_course.can_register?
|
19
21
|
dropdown_link_to('Register', effective_learndash.new_learndash_course_course_registration_path(learndash_course))
|
20
22
|
end
|
21
23
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# Dashboard LearndashUsers
|
2
2
|
class EffectiveLearndashEnrollmentsDatatable < Effective::Datatable
|
3
3
|
datatable do
|
4
|
-
col :learndash_course do |enrollment|
|
5
|
-
|
4
|
+
col :learndash_course, label: 'Title' do |enrollment|
|
5
|
+
enrollment.learndash_course.to_s
|
6
6
|
end
|
7
7
|
|
8
|
-
col :progress_status
|
8
|
+
col :progress_status, label: 'Status'
|
9
9
|
|
10
10
|
col :last_step, visible: false
|
11
11
|
col :steps_completed, visible: false
|
@@ -16,9 +16,9 @@ class EffectiveLearndashEnrollmentsDatatable < Effective::Datatable
|
|
16
16
|
|
17
17
|
actions_col(show: false) do |enrollment|
|
18
18
|
if enrollment.not_started?
|
19
|
-
dropdown_link_to('
|
19
|
+
dropdown_link_to('Access Course', EffectiveLearndash.learndash_url, target: '_blank')
|
20
20
|
elsif enrollment.in_progress?
|
21
|
-
dropdown_link_to('Continue', EffectiveLearndash.learndash_url, target: '_blank')
|
21
|
+
dropdown_link_to('Continue Course', EffectiveLearndash.learndash_url, target: '_blank')
|
22
22
|
else
|
23
23
|
dropdown_link_to('Show', EffectiveLearndash.learndash_url, target: '_blank')
|
24
24
|
end
|
@@ -127,11 +127,16 @@ module EffectiveLearndashCourseRegistration
|
|
127
127
|
learndash_owner.membership_present?
|
128
128
|
end
|
129
129
|
|
130
|
-
def
|
131
|
-
|
130
|
+
def registration_price
|
131
|
+
raise('expected a learndash course') unless learndash_course.present?
|
132
|
+
raise('expected a learndash owner') unless learndash_owner.present?
|
132
133
|
|
134
|
+
member_pricing? ? learndash_course.member_price : learndash_course.regular_price
|
135
|
+
end
|
136
|
+
|
137
|
+
def assign_pricing
|
133
138
|
course_registrant.assign_attributes(
|
134
|
-
price:
|
139
|
+
price: registration_price,
|
135
140
|
qb_item_name: learndash_course.qb_item_name,
|
136
141
|
tax_exempt: learndash_course.tax_exempt
|
137
142
|
)
|
@@ -146,7 +146,7 @@ module Effective
|
|
146
146
|
end
|
147
147
|
|
148
148
|
def username_for(resource)
|
149
|
-
raise('expected a
|
149
|
+
raise('expected a LearnDash owner') unless resource.class.respond_to?(:effective_learndash_owner?) # This is a user
|
150
150
|
|
151
151
|
name = EffectiveLearndash.wp_username_for(resource)
|
152
152
|
name = "test#{name}" unless Rails.env.production?
|
@@ -154,7 +154,7 @@ module Effective
|
|
154
154
|
end
|
155
155
|
|
156
156
|
def email_for(resource)
|
157
|
-
raise('expected a
|
157
|
+
raise('expected a LearnDash owner') unless resource.class.respond_to?(:effective_learndash_owner?) # This is a user
|
158
158
|
|
159
159
|
email = resource.email
|
160
160
|
email = "test#{email}" unless Rails.env.production?
|
@@ -162,7 +162,7 @@ module Effective
|
|
162
162
|
end
|
163
163
|
|
164
164
|
def password_for(resource)
|
165
|
-
raise('expected a
|
165
|
+
raise('expected a LearnDash owner') unless resource.class.respond_to?(:effective_learndash_owner?) # This is a user
|
166
166
|
EffectiveLearndash.wp_password_for(resource)
|
167
167
|
end
|
168
168
|
|
@@ -178,7 +178,7 @@ module Effective
|
|
178
178
|
elsif response.kind_of?(Array)
|
179
179
|
response.first
|
180
180
|
else
|
181
|
-
raise("unexpected
|
181
|
+
raise("unexpected LearnDash API response #{response}")
|
182
182
|
end
|
183
183
|
end
|
184
184
|
|
@@ -199,7 +199,7 @@ module Effective
|
|
199
199
|
elsif response.kind_of?(Array)
|
200
200
|
response
|
201
201
|
else
|
202
|
-
raise("unexpected
|
202
|
+
raise("unexpected LearnDash API find_by response #{response}")
|
203
203
|
end
|
204
204
|
)
|
205
205
|
|
@@ -6,7 +6,7 @@
|
|
6
6
|
= tab 'Enrollments' do
|
7
7
|
%h2 Enrollments
|
8
8
|
%p Click the New button from the below table to enroll a user into this course.
|
9
|
-
%p Enrolling a user here will enroll them on the
|
9
|
+
%p Enrolling a user here will enroll them on the LearnDash site.
|
10
10
|
%p Alternately, if this course is available for registration, the enrollment will be created upon registration purchase.
|
11
11
|
|
12
12
|
- datatable = Admin::EffectiveLearndashEnrollmentsDatatable.new(learndash_course: learndash_course)
|
@@ -1,10 +1,10 @@
|
|
1
|
-
= card('
|
1
|
+
= card('LearnDash Course') do
|
2
2
|
%p= learndash_course.title
|
3
3
|
%p= link_to(learndash_course.link, learndash_course.link, target: '_blank')
|
4
4
|
|
5
|
-
%p= link_to "
|
5
|
+
%p= link_to "LearnDash LMS Course Admin", EffectiveLearndash.learndash_url.chomp('/') + "/wp-admin/post.php?post=#{learndash_course.course_id}}&action=edit", target: '_blank'
|
6
6
|
|
7
|
-
%h3
|
7
|
+
%h3 LearnDash User Enrollments
|
8
8
|
|
9
9
|
%p Click the New button from the below table to enroll a user into this course.
|
10
10
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
- if owner.learndash_user.blank?
|
2
|
-
%p #{owner} does not yet have an account on
|
2
|
+
%p #{owner} does not yet have an account on LearnDash.
|
3
3
|
|
4
4
|
- if owner.learndash_user.present?
|
5
5
|
= render('admin/learndash_users/learndash_user', learndash_user: owner.learndash_user)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
= effective_form_with(model: [:admin, learndash_user], engine: true) do |f|
|
2
2
|
|
3
3
|
= f.select :owner, {'Owners' => current_user.class.sorted }, polymorphic: true,
|
4
|
-
hint: 'Create a
|
4
|
+
hint: 'Create a LearnDash account for this user'
|
5
5
|
|
6
6
|
= f.submit
|
@@ -1,19 +1,19 @@
|
|
1
|
-
= card('
|
1
|
+
= card('LearnDash') do
|
2
2
|
%p
|
3
3
|
= link_to(learndash_user.owner, "/admin/users/#{learndash_user.owner.to_param}/edit")
|
4
|
-
has an existing account on
|
4
|
+
has an existing account on LearnDash.
|
5
5
|
|
6
6
|
%ul
|
7
7
|
%li Email: #{learndash_user.email}
|
8
8
|
%li Username: #{learndash_user.username}
|
9
9
|
%li Password: #{learndash_user.password}
|
10
10
|
|
11
|
-
%p= link_to "
|
11
|
+
%p= link_to "LearnDash LMS User Admin", EffectiveLearndash.learndash_url.chomp('/') + "/wp-admin/user-edit.php?user_id=#{learndash_user.user_id}", target: '_blank'
|
12
12
|
|
13
13
|
%p
|
14
14
|
%small Last refreshed #{time_ago_in_words(learndash_user.last_synced_at)} ago.
|
15
15
|
|
16
|
-
%h3
|
16
|
+
%h3 LearnDash Course Enrollments
|
17
17
|
|
18
18
|
%p Click the New button from the below table to manually enroll this user into a new course.
|
19
19
|
|
@@ -2,19 +2,23 @@
|
|
2
2
|
%table.table.table-sm
|
3
3
|
%tbody
|
4
4
|
%tr
|
5
|
-
%th.border-0
|
5
|
+
%th.border-0 Course
|
6
6
|
%td.border-0
|
7
|
-
%p
|
7
|
+
%p
|
8
|
+
%strong=course_registration.course
|
8
9
|
|
9
|
-
%p Please sign into Learndash with the following credentials:
|
10
10
|
- learndash_user = course_registration.learndash_owner.learndash_user
|
11
|
+
%p Your course account credentials are:
|
11
12
|
|
12
13
|
%ul
|
13
|
-
%li
|
14
|
-
|
15
|
-
|
14
|
+
%li
|
15
|
+
%strong Username:
|
16
|
+
#{learndash_user.username}
|
17
|
+
%li
|
18
|
+
%strong Password:
|
19
|
+
#{learndash_user.password}
|
16
20
|
|
17
|
-
%p= link_to('
|
21
|
+
%p= link_to('Sign in to your course account', EffectiveLearndash.learndash_url, target: '_blank', class: 'btn btn-primary mb-2')
|
18
22
|
|
19
23
|
- if request.path.start_with?('/admin')
|
20
24
|
%tr
|
@@ -2,9 +2,8 @@
|
|
2
2
|
= render 'effective/course_registrations/content', resource: resource
|
3
3
|
|
4
4
|
= card('Course') do
|
5
|
-
=
|
6
|
-
|
7
|
-
%p You qualify for #{resource.member_pricing? ? 'member' : 'regular'} pricing.
|
5
|
+
%p= resource.learndash_course
|
6
|
+
%p= price_to_currency(resource.registration_price)
|
8
7
|
|
9
8
|
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
10
9
|
= f.hidden_field :id
|
@@ -13,12 +13,13 @@
|
|
13
13
|
.alert.alert-warning
|
14
14
|
You are already enrolled in #{link_to(resource.course, EffectiveLearndash.learndash_url, target: '_blank')}.
|
15
15
|
|
16
|
-
|
17
|
-
=
|
16
|
+
- if existing.blank?
|
17
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
18
|
+
= f.hidden_field :id
|
18
19
|
|
19
|
-
|
20
|
+
= f.hidden_field :learndash_course_id
|
20
21
|
|
21
|
-
|
22
|
-
|
22
|
+
= f.hidden_field :owner_type
|
23
|
+
= f.hidden_field :owner_id
|
23
24
|
|
24
|
-
|
25
|
+
= f.save 'Save and Continue'
|
@@ -10,7 +10,6 @@
|
|
10
10
|
= link_to "Return to Dashboard", root_path, class: 'btn btn-lg btn-primary mb-4'
|
11
11
|
|
12
12
|
= render 'effective/course_registrations/summary', course_registration: resource
|
13
|
-
= render 'effective/course_registrations/course_registration', course_registration: resource
|
14
13
|
= render 'effective/course_registrations/orders', course_registration: resource
|
15
14
|
|
16
15
|
= link_to "Return to Dashboard", root_path, class: 'btn btn-lg btn-primary'
|
@@ -1,31 +1,29 @@
|
|
1
1
|
- learndash_user = current_user.try(:learndash_user)
|
2
2
|
- authorized = learndash_user && EffectiveResources.authorized?(self, :show, learndash_user)
|
3
3
|
|
4
|
-
%h2
|
4
|
+
%h2 Courses
|
5
5
|
|
6
6
|
- if learndash_user.blank?
|
7
|
-
%p You do not have a
|
8
|
-
|
9
|
-
- if learndash_user.present?
|
10
|
-
%p
|
11
|
-
= succeed('.') do
|
12
|
-
You have an existing account on
|
13
|
-
= link_to('Learndash', EffectiveLearndash.learndash_url, target: '_blank')
|
7
|
+
%p You do not have an account to access courses. When you are enrolled in a course, your account credentials will be displayed here.
|
14
8
|
|
15
9
|
- if learndash_user.present? && authorized
|
16
10
|
- learndash_user.refresh!
|
17
11
|
|
18
|
-
%p
|
12
|
+
%p Your course account credentials are:
|
19
13
|
|
20
14
|
%ul
|
21
|
-
%li
|
22
|
-
|
23
|
-
|
15
|
+
%li
|
16
|
+
%strong Username:
|
17
|
+
#{learndash_user.username}
|
18
|
+
%li
|
19
|
+
%strong Password:
|
20
|
+
#{learndash_user.password}
|
24
21
|
|
25
|
-
|
26
|
-
%p You are enrolled in #{pluralize(learndash_user.learndash_enrollments.length, 'course')}.
|
22
|
+
%p= link_to('Sign in to your course account', EffectiveLearndash.learndash_url, target: '_blank', class: 'btn btn-primary')
|
27
23
|
|
24
|
+
- if learndash_user.learndash_enrollments.present?
|
28
25
|
- datatable = EffectiveResources.best('EffectiveLearndashEnrollmentsDatatable').new(self)
|
29
26
|
= render_datatable(datatable, simple: true)
|
27
|
+
|
30
28
|
- else
|
31
|
-
You are not enrolled in any
|
29
|
+
%p You are not enrolled in any courses.
|
data/config/routes.rb
CHANGED
@@ -7,7 +7,7 @@ end
|
|
7
7
|
EffectiveLearndash::Engine.routes.draw do
|
8
8
|
# Public routes
|
9
9
|
scope module: 'effective' do
|
10
|
-
resources :learndash_courses, only: [:index
|
10
|
+
resources :learndash_courses, only: [:index] do
|
11
11
|
resources :course_registrations, only: [:new, :show, :destroy] do
|
12
12
|
resources :build, controller: :course_registrations, only: [:show, :update]
|
13
13
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_learndash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
@@ -164,7 +164,7 @@ dependencies:
|
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
|
-
description: Create Wordpress users and read
|
167
|
+
description: Create Wordpress users and read LearnDash course progress
|
168
168
|
email:
|
169
169
|
- info@codeandeffect.com
|
170
170
|
executables: []
|
@@ -259,5 +259,5 @@ requirements: []
|
|
259
259
|
rubygems_version: 3.1.2
|
260
260
|
signing_key:
|
261
261
|
specification_version: 4
|
262
|
-
summary: Create Wordpress users and read
|
262
|
+
summary: Create Wordpress users and read LearnDash course progress
|
263
263
|
test_files: []
|